如何在Jetpack Compose中实现双文本左右两端对齐布局
解决Jetpack Compose中Row内文本两端对齐的问题
你当前的代码问题在于给两个Text都设置了weight(1f),这会让它们平分Row的宽度,导致右侧文本无法贴紧布局右边缘;同时fillMaxSize()不会改变文本的对齐方式,文本默认左对齐,所以看起来始终无法到达最右侧。
下面是两种可行的解决方案:
方案一:用Spacer填充中间空间
通过Spacer占据Row的剩余空间,强制两个文本分别贴紧左右边缘:
Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { Text( modifier = Modifier.padding(top = 16.dp, bottom = 8.dp), text = title, style = titleStyle, color = MaterialTheme.colorScheme.error ) Spacer(modifier = Modifier.weight(1f)) Text( modifier = Modifier.padding(top = 16.dp, bottom = 8.dp), text = texts[1], color = MaterialTheme.colorScheme.error, style = style ) }
方案二:设置右侧文本右对齐
给右侧Text设置weight(1f)占据剩余空间,同时让文本自身右对齐:
Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { Text( modifier = Modifier.padding(top = 16.dp, bottom = 8.dp), text = title, style = titleStyle, color = MaterialTheme.colorScheme.error ) Text( modifier = Modifier .weight(1f) .padding(top = 16.dp, bottom = 8.dp), text = texts[1], color = MaterialTheme.colorScheme.error, style = style, textAlign = TextAlign.End ) }
两种方案都能实现你需要的|LECTURA BREVE Ex 19, 4-6a|两端对齐效果,根据自己的习惯选择即可。
内容的提问来源于stack exchange,提问作者A. Cedano
相关产品推荐
相关产品推荐

