VerticalArrangement = Arrangement.Bottom для столбца не работает

У меня есть Jetpack Compose, компонуемый в столбце, начинающемся со значка, заголовка, текста и строки пейджера:

Box(modifier = Modifier
    .fillMaxSize()
    .background(color = TVTheme.colors.blue)
) {

val bigPadding = 334.dp
val smallPadding = 24.dp

    Column(
        verticalArrangement = Arrangement.Bottom,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {

        Image(
            modifier = Modifier
                .requiredSize(128.dp, 17.dp),
            icon = R.drawable.calendar_a_icon
        )
        

        // title
        val title = "Lorem Ipsum Dolor Sit"
        if (title.isNotEmpty()) {
            Text(
                text = title,
                textAlign = TextAlign.Center,
                modifier = Modifier
                    .padding(top = dimensionResource(id = R.dimen.vertical), start = bigPadding, end = bigPadding),
                overflow = TextOverflow.Visible
            )
        }

        // body
        val body = "Lorem ipsum dolor sit. Lorem ipsum dolor sit. Lorem ipsum dolor sit. Lorem ipsum dolor sit."
        if (body.isNotEmpty()) {
            Text(
                text = body,
                textAlign = TextAlign.Center,
                modifier = Modifier
                    .padding(top = dimensionResource(id = R.dimen.vertical), start = bigPadding, end = bigPadding),
                overflow = TextOverflow.Visible
            )
        }

        Row(
            modifier = Modifier
                .padding(top = 44.dp, bottom = smallPadding, start = smallPadding, end = smallPadding)
                .fillMaxWidth(),
            horizontalArrangement = Arrangement.SpaceBetween
        ) {

            val text = AnnotatedString.Builder(item.skipButtonText).toAnnotatedString()

            ClickableText(
                maxLines = 1,
                text = "Skip",
                onClick = {
                    skip()
                }
            )

            Pager(
                modifier = Modifier
                    .align(Alignment.CenterVertically),
                index = currentPageIndex,
                pageNumbers = totalPages)
        }
    }
}

который производит этот экран:

В столбце есть verticalArrangement = Arrangement.Bottom, но очевидно, что столбец не выровнен по низу, а начинается сверху.

Итак, как я могу выровнять столбец по низу, как требуется в verticalArrangement = Arrangement.Bottom?

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

Ответы 1

Ответ принят как подходящий

verticalArrangement = Arrangement.Bottom размещает дочерние элементы вертикально так, чтобы они были как можно ближе к нижней части главной оси.

В вашем случае вы должны применить Modifier.fillMaxHeight() к Column:

Column(
    verticalArrangement = Arrangement.Bottom,
    horizontalAlignment = Alignment.CenterHorizontally,
    modifier = Modifier.fillMaxHeight()
) {

Если вы хотите применить исправление заполнения, вы можете использовать что-то вроде modifier = Modifier.padding(xxx).fillMaxWidth().

    // title
    val title = "Lorem Ipsum Dolor Sit"
    Text(
        text = title,
        textAlign = TextAlign.Center,
        modifier = Modifier,
            .padding(start = bigPadding, end = bigPadding).fillMaxWidth(),
        overflow = TextOverflow.Visible
    )

Спасибо. Modifier.fillMaxHeight() помогло на 1. Но Modifier.padding(xxx).fillMaxWidth() не повлияло на 2.

Ralf Wickum 11.01.2023 19:26

Я разделил свой предыдущий вопрос на 2 вопроса и принимаю Modifier.fillMaxHeight() в качестве ответа на этот. Моя другая проблема теперь здесь: stackoverflow.com/questions/75098208/…

Ralf Wickum 12.01.2023 15:56

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