Модификатор вертикальной прокрутки с дочерними LazyVerticalGrid и LazyColumn не работаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Модификатор вертикальной прокрутки с дочерними LazyVerticalGrid и LazyColumn не работает

Сообщение Anonymous »

Размещение столбца с вертикальной прокруткой с дочерней ленивой вертикальной сеткой дает следующую ошибку

java.lang.IllegalStateException: вложенные макеты с возможностью прокрутки в одном направлении, такие как LazyColumn и Столбец(Modifier.verticalScroll()) не разрешен. Если вы хотите добавить заголовок перед списком элементов, обратите внимание на компонент LazyColumn, который имеет API DSL, который позволяет сначала добавить заголовок с помощью функции item(), а затем список элементов с помощью items().

У меня есть требование ProfileScreen, например столбец с вертикальной прокруткой, внутри которого есть несколько разделов профиля, таких как изображения и ссылки. Раздел изображения имеет вертикальную сетку из 3, а раздел ссылок также имеет вертикальную сетку с максимальным интервалом 2 и диапазоном для элементов.
Вот как это реализовано:

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

Column(
modifier = Modifier
.fillMaxSize()
.pullRefresh(pullRefreshState, enabled = true)
.verticalScroll(rememberScrollState())

.background(mainBackGround)
) {
//LinksSection()
Column(
modifier = modifier
.padding(padding)
.shadow(elevation, shape)
.fillMaxWidth()
.background(backgroundColor, shape)
) {
LazyVerticalGrid(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 7.dp),
columns = GridCells.Fixed(2)
) {
items(
array,
span = { item ->
return@items if (item.thumbnail.orEmpty().equals("small", true)) {
if (item.localBig) {
GridItemSpan(2)
} else {
GridItemSpan(1)
}
} else {
GridItemSpan(2)
}
},
) {
gridItems()
}

//GallerySection
Column(
modifier = modifier
.padding(padding)
.shadow(elevation, shape)
.fillMaxWidth()
.background(backgroundColor, shape)
) {
LazyVerticalGrid(
userScrollEnabled = false,
columns = GridCells.Fixed(3),
horizontalArrangement = Arrangement.Center,
) {
items() {}
}
}
}
}
}
Я пробовал установить фиксированную высоту для обоих, но это не соответствует требованиям. Оба этих списка отключены для пользователя, поэтому они прокручиваются с помощью основной прокрутки, также пытались рассчитать высоту для всех элементов, но это дает неточную высоту, поскольку диапазон меняется. Этот экран выполнен с использованием XML и работает хорошо. Если я конвертирую это в композицию, сейчас застрял на этом.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ot-working
Ответить

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

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

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

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

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