Jetpack Compose中如何在Column布局内将Text对齐到末尾?
解答
你混淆了textAlign和Modifier.align()的作用,这两者完全是不同的概念:
textAlign:仅负责Text组件内部文本的对齐逻辑,比如让文本在Text自身的宽度范围内左、中、右排列。默认情况下Text的宽度是包裹内容的,所以设置textAlign = TextAlign.Center只会让文本在自身的窄范围内居中,不会改变Text组件在父布局里的位置。Modifier.align(Alignment.End):这才是控制Text组件本身在父布局(此处为Column)中的对齐方式。Column是垂直方向布局,align(Alignment.End)会让组件靠父布局的右侧(末尾)排列,这也是你代码里这个属性能生效的原因。
如果目标是让Text对齐到父布局末尾,你代码里用Modifier.align(Alignment.End)已经是正确写法。要是你想让Text占满父布局宽度,同时让内部文本靠右对齐,可以这么写:
Text( text = from, fontSize = 36.sp, textAlign = TextAlign.End, modifier = Modifier .padding(16.dp) .fillMaxWidth() )
这里fillMaxWidth()让Text占满父布局宽度,再用textAlign = TextAlign.End让内部文本在这个宽范围内靠右,效果和align(Alignment.End)类似,但本质不同:前者是Text组件占满宽度,文本靠右;后者是Text组件宽度包裹内容,整体靠右。
内容的提问来源于stack exchange,提问作者abdul_21
相关产品推荐
相关产品推荐

