Как сделать так, чтобы элемент ленивого столбца занимал всю высоту в Jetpack Compose?

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

Код

val itemsList: Список по mainScreenViewModel.portfolioItems.observeAsState(listOf())

      Box(modifier = Modifier.fillMaxSize()) {
    Column(modifier = Modifier.matchParentSize()) {
        LazyColumn(
            content = {
                itemsIndexed(itemsList) { index, item ->
                    Text(text = "Hello", modifier = Modifier.fillMaxHeight())
                }
            },
        )
}
}

2 ответа

fillMaxHeight()/ fillMaxWidth()не работают правильно для вертикальной и горизонтальной прокрутки списка соответственно. Вместо этого мы можем использовать fillParentHeight() а также fillParentWidth() соответственно предусмотрено в LazyItemScope.

Образец кода:

      LazyColumn(
     modifier = modifier.fillMaxHeight()) {
         items(count = 3) {
             Column(modifier = Modifier.fillParentMaxHeight()) {
                 Text(
                     text = "Item $it", 
                     modifier = Modifier.fillMaxWidth()
                 )
                 Divider(Modifier.height(2.dp))
            }
     }
}

Подробнее см. Https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyItemScope.

Используйте модификатор Modifier.fillParentMaxHeight() в предметах.

      Text(text = "Hello", modifier = Modifier.fillParentMaxHeight())
Другие вопросы по тегам