android - Jetpack Compose 中的文本布局优先级
问题描述
我连续有两个文本:
Row {
Text(
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
maxLines = 1,
style = MaterialTheme.typography.h4,
modifier = Modifier
.background(Color.Cyan)
)
Spacer(
modifier = Modifier
.weight(1f)
.requiredWidthIn(min = 10.dp)
)
Text(
"Second",
style = MaterialTheme.typography.h5,
modifier = Modifier
.requiredWidth(IntrinsicSize.Min)
.background(Color.Yellow.copy(alpha = 0.5f))
)
}
第一个可能很长。当它发生时,第二个文本被压缩并从视图中消失。
requiredWidth(IntrinsicSize.Min)
把它带回来,但第一个文本仍然占用所有可用宽度并低于第二个文本。
当第一个文本很小时,我需要第二个在右边,这就是我在它们之间使用间隔的原因。
如何添加一些布局优先级来修复它?
解决方案
您可以添加Arrangement.SpaceBetween
并将Row
修饰符添加weight(1f, fill= false)
到第一个Text
:
Row(horizontalArrangement = Arrangement.SpaceBetween,
modifier = Modifier.fillMaxWidth()) {
Text(
"Lorem ....",
maxLines = 1,
style = MaterialTheme.typography.h4,
modifier = Modifier
.background(Color.Cyan)
.weight(1f, fill= false)
)
Text(
"Second",
style = MaterialTheme.typography.h5,
modifier = Modifier
.background(Color.Yellow.copy(alpha = 0.5f))
)
}
推荐阅读
- python - 如何在 Colaboratory 中加快神经网络的学习过程?
- click - 编写鼠标悬停和单击事件脚本
- python - python - 正则表达式 - 用逗号很好地分隔数组字符串
- javascript - 如何在ajax请求中发送xml标签作为参数?
- sql-server - 交叉应用以使用“节点”创建新行
- android - ANDROID:应用栏或状态栏与主要活动不同
- html - Css 样式不适用于页面
- node.js - 使用 mongoose 在 node JS express 应用程序中使用多个数据库
- html - common.css 中的 MediaWiki CSS 适用于 Vector,但不适用于 MinervaNeue
- c++ - 当您单击控制台窗口时,std::cout 会阻塞吗?