Выравнивание сегментированных кнопок материала без обрезки текстаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Выравнивание сегментированных кнопок материала без обрезки текста

Сообщение Anonymous »

Я пытаюсь реализовать, казалось бы, простое использование SingleChoiceSegmentedButtonRow из Material3, но изо всех сил пытаюсь выровнять кнопки друг с другом, не обрезая при этом их текст. Вот минимальный пример:

Код: Выделить всё

SingleChoiceSegmentedButtonRow(
) {
val options = listOf("Short", "Two Words", "Longer Words")
options.forEachIndexed { index, option ->
SegmentedButton(
shape = SegmentedButtonDefaults.itemShape(index = index, count = options.size),
selected = false,
onClick = {},
icon = {},
) {
Text(
text = option,
fontSize = 14.sp,
)
}
}
}
Но третья кнопка выше остальных:
[img]https://i .sstatic.net/JfGSf0G2.png[/img]

Основываясь на вопросе с аналогичной проблемой, я добавил Modifier.height(IntrinsicSize.Min) в SingleChoiceSegmentedButtonRow и Modifier.fillMaxHeight() для SegmentedButton. Это выровняло кнопки, но затем обрезало текст:
Изображение

Я пробовал много комбинаций fillMaxHeight, IntrinsicSize.Min и IntrinsicSize.Max в SingleChoiceSegmentedButtonRow, SegmentedButton и Text, но ничего из того, что я пробовал, не дало других результатов.
Добавление Modifier.height(40.dp) в Текст помогает:
Изображение

Но я понимаю, что такая жестко запрограммированная высота вызовет проблемы на разных устройствах и размерах шрифта.
И очень загадочно, применение Modifier.padding(horizontal = 5.dp) (да, горизонтально, а не вертикально) к тексту работает лучше всего:

Похоже, что это должно быть очень просто и не должно требовать размеров жесткого кодирования. Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/790 ... g-off-text
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»