我想显示视图Text 1
,Text 2
位于Start位置,Text 3
位于End位置。类似于此图像
我是在这个逻辑的帮助下做的
@Composable
fun XyzContent(isVisible: Boolean) {
Column(modifier = Modifier.fillMaxWidth()) {
Text(
text = "Text 1",
style = SlateTypography.body1,
)
Text(
text = "Text 2",
style = SlateTypography.body1,
)
AnimatedVisibility(visible = isVisible) {
Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.End
) {
Text(
text = "Text 3",
style = SlateTypography.body1,
)
}
}
}
}
我想避免Column
嵌套在AnimatedVisibility
中。所以我直接在AnimatedVisibility
中传递修饰符并删除Column
,但现在它不能正常工作。它显示Text 3
在Start位置。
@Composable
fun XyzContent(isVisible: Boolean) {
Column(modifier = Modifier.fillMaxWidth()) {
Text(
text = "Text 1",
style = SlateTypography.body1,
)
Text(
text = "Text 2",
style = SlateTypography.body1,
)
AnimatedVisibility(
modifier = Modifier
.fillMaxWidth()
.align(End),
visible = isVisible
) {
Text(
text = "Text 3",
style = SlateTypography.body1,
)
}
}
}
看起来是这样的
。
那么,避免这种嵌套的Column
的最佳方法是什么呢?
1条答案
按热度按时间mwg9r5ms1#
你可以从
AnimatedVisibility
的修饰符中删除.fillMaxWidth()
。如果该文本获得了整个宽度,它就没有机会将自己对齐到末尾(* 实际上,你也可以通过改变文本对齐方式来实现这一点,但这是特定于文本的,在这里似乎没有必要)。你可以试试这个: