У меня есть Box
в моем приложении с кучей детей:
Box(modifier = Modifier.fillMaxSize()) {
Text("a")
Text("b")
}
Я хочу, чтобы текст отображался выровненным по верхнему краю на расстоянии 20% от начала. Как мне этого добиться?
Чтобы решить эту проблему, вам нужны две части:
Существует два способа компоновки контента Box
: contentAlignment
применяет выравнивание ко всем дочерним элементам и Modifier.align
, который можно применять к конкретному дочернему элементу.
Обычно вы можете использовать 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
.