Val*_*kov 14 android android-jetpack android-jetpack-compose
假设我想创建一个与其中最宽的子文本一样宽的列。为此,列可以使用修饰符 或,但结果看起来相同。这两个修饰符有什么区别?例如:.wrapContentWidth().width(IntrinsicSize.Max)
Column(
modifier = Modifier.wrapContentWidth()
// modifier = Modifier.width(IntrinsicSize.Max)
) {
Text("short text", Modifier.background(Color.LightGray))
Text("some longer text", Modifier.background(Color.LightGray))
}
Run Code Online (Sandbox Code Playgroud)
Val*_*kov 17
让我们在文本之间添加一个分隔符。我们希望分隔线与最宽的文本一样宽。
Column(
modifier = Modifier.wrapContentWidth()
// modifier = Modifier.width(IntrinsicSize.Max)
) {
Text("short text", Modifier.background(Color.LightGray))
Divider(color = Color.Red)
Text("some longer text", Modifier.background(Color.LightGray))
}
Run Code Online (Sandbox Code Playgroud)
如您所见,如果Modifier.wrapContentWidth()分隔线强制列与其父列一样宽。发生这种情况是因为在幕后Divider使用,并且由于列的不限制其子级宽度,因此分隔线会尽可能地扩展。.fillMaxWidth().wrapContentWidth()
同时Modifier.width(IntrinsicSize.Max)表现也符合我们的预期。如果没有给出约束,分隔符不会占用空间,因此它的固有宽度为 0,并且不会影响列宽。
| 归档时间: |
|
| 查看次数: |
9417 次 |
| 最近记录: |