Jetpack пишет, как прокручивать весь экран с помощью lazycolumnAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Jetpack пишет, как прокручивать весь экран с помощью lazycolumn

Сообщение Anonymous »

У меня есть заголовок «Автомобили» вверху и индикатор загрузки, который занимает центр оставшегося пространства под заголовком. Счетчик загрузки виден только в том случае, если isLoading имеет значение true. Если isLoading имеет значение false, carsList отображается под заголовком «Автомобили» и занимает оставшееся пространство под заголовком.
В настоящее время с приведенным ниже кодом только элементы в прокрутке LazyColumn. Но я хочу, чтобы весь экран прокручивался, как мне этого добиться?
Если я использую обычный XML-код, я могу добиться этого, используя NestedScrollView в качестве родительского элемента и RecyclerView как дочерний и установите android:nestedScrollingEnabled="false".

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

@Composable
fun CarScreen(
isLoading: Boolean,
carsList: List
) {

Column(
modifier = Modifier
.fillMaxSize()
.background(Color.White)
.padding(horizontal = 16.dp, vertical = 32.dp)
) {
Text(
text = "Cars",
fontSize = 32.sp,
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 32.dp)
.background(Color.Red)
)

if (isLoading) {
CircularProgressIndicator(
modifier = Modifier
.weight(1f)
.wrapContentHeight()
.align(Alignment.CenterHorizontally)
.background(Color.Blue)
)
}

if (!isLoading) {
LazyColumn(
modifier = Modifier
.weight(1f)
.fillMaxWidth()
.background(Color.Yellow)
) {
item {
Text(
text = "List of SUVs",
fontSize = 20.sp,
modifier = Modifier.padding(bottom = 16.dp)
)
}
items(carsList) {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 16.dp)
.background(Color.Gray)
) {
Text(text = "Brand: ${it.brand}")
Text(text = "Model: ${it.model}")
Text(text = "Model: ${it.year}")
}
}
}
}
}
}
Изображение при isLoading true
Изображение при isLoading false
Пока я попробовал две вещи:
p>
  • Я попробовал установить LazyColumn(userScrollEnabled = false), но это полностью отключило прокрутку, а это не то, что мне нужно. Я хочу, чтобы прокручивался весь экран, а не прокручивался только LazyColumn.
  • Я попробовал преобразовать самый верхний родительский столбец в LazyColumn и обернул каждый отдельный компонент внутри него элементом или элементами. Но я заметил, что многие функции-модификаторы недоступны внутри блока item и items. Кроме того, этот способ не казался элегантным и требовал много дополнительного кода, наверняка Jetpack Compose предоставляет простой способ?


Подробнее здесь: https://stackoverflow.com/questions/792 ... lazycolumn
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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