Jetpack compose: размещение элементов внутри коробки

У меня есть Box в моем приложении с кучей детей:

Box(modifier = Modifier.fillMaxSize()) {
    Text("a")
    Text("b")
}

Я хочу, чтобы текст отображался выровненным по верхнему краю на расстоянии 20% от начала. Как мне этого добиться?

0
0
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы решить эту проблему, вам нужны две части:

  1. Существует два способа компоновки контента Box: contentAlignment применяет выравнивание ко всем дочерним элементам и Modifier.align, который можно применять к конкретному дочернему элементу.

  2. Обычно вы можете использовать Modifier.padding в таких случаях, но не в том случае, когда вам нужен относительный размер. Самый простой способ взять часть родительского размера — использовать модификатор Modifier.fillMax..., в этом случае Modifier.fillMaxWidth(0.2f) можно применить к Spacer, поместив в Row с вашим элементом.

Box(modifier = Modifier.fillMaxSize()) {
    Row(
        Modifier
            .align(Alignment.TopStart)
    ) {
        Spacer(Modifier.fillMaxWidth(0.2f))
        Text("a")
    }
}
Ответ принят как подходящий

Используйте модификаторы offset/absoluteOffset вместе с BoxWithConstraints.

Другие вопросы по теме