В настоящее время с приведенным ниже кодом только элементы в прокрутке 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 false
Пока я попробовал две вещи:
p>
- Я попробовал установить LazyColumn(userScrollEnabled = false), но это полностью отключило прокрутку, а это не то, что мне нужно. Я хочу, чтобы прокручивался весь экран, а не прокручивался только LazyColumn.
- Я попробовал преобразовать самый верхний родительский столбец в LazyColumn и обернул каждый отдельный компонент внутри него элементом или элементами. Но я заметил, что многие функции-модификаторы недоступны внутри блока item и items. Кроме того, этот способ не казался элегантным и требовал много дополнительного кода, наверняка Jetpack Compose предоставляет простой способ?
Подробнее здесь: https://stackoverflow.com/questions/792 ... lazycolumn