Jetpack Compose: как разместить текст в правой части строки?
Я пытаюсь поместить два текста внутри
Вот пример того, как это должно выглядеть
Вот мой код:
Row(
modifier = Modifier
.fillMaxWidth()
.padding(top = 4.dp),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically,
) {
if (hasLeft()) {
Text(
modifier = Modifier.weight(1f),
text = leftText,
)
}
if (hasRight()) {
Text(
modifier = Modifier.padding(start = 4.dp),
text = rightText,
)
}
}
В итоге, когда нет левого текста, правый текст располагается слева, а мне нужно, чтобы он был справа, как это исправить?
Пожалуйста, помогите мне.
2 ответа
Установите для свойства fill Modifier.weight значение false для левого текста и добавьте пробел, когда левый текст недоступен.
Row(
modifier = Modifier
.fillMaxWidth()
.padding(top = 4.dp),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically,
) {
if (hasLeft) {
Text(
modifier = Modifier.weight(1f, fill = false),
text = leftText,
)
}else {
Spacer(Modifier.weight(1f))
}
if (hasRight) {
Text(
modifier = Modifier.padding(start = 4.dp),
text = rightText
)
}
}
Вы ограничиваете себя мыслью, что во всех случаях так и должно быть.Row
.
when {
hasLeft() && hasRight() -> YourOriginalRow()
hasLeft() -> `Row/Box with only left text`()
hasRight() -> `Box with only right text`()
}