При использовании lazyColum внутри столбца есть ошибка в Jetpack Compose.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 При использовании lazyColum внутри столбца есть ошибка в Jetpack Compose.

Сообщение Anonymous »

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

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

Коды lazyColumn, у меня есть список в этом коде:

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

@Composable
fun UpScreenSection(
modifier: Modifier,
state: ProfileState,
viewModel: ProfileViewModel
) {
Spacer(modifier = Modifier.size(24.dp))

Column(
modifier = modifier
.fillMaxSize()
.padding(24.dp)
) {
if (!state.items.isNullOrEmpty()) {
Box(
modifier = modifier
.fillMaxSize()
) {
LazyColumn(modifier = modifier.fillMaxSize()) {
items(state.items) { item ->
ProfileListItems(item = item, onItemClick = {
//TODO Navigate to specific screen
when (it.id) {
1 -> {
}
2 -> {
}
3 -> {
}
4 -> viewModel.navigate(ReferAFriendDestination.route())
}
})
}
}
}
}
}
Spacer(modifier = Modifier.size(24.dp))
}

Приведенные выше коды используются внутри составных кодов, указанных ниже:

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

@Composable
fun ProfileContentSection(
modifier: Modifier = Modifier,
viewModel: ProfileViewModel
) {
val context = LocalContext.current
val scrollState = rememberScrollState()
Box(
modifier = modifier
.fillMaxSize()
) {
val state = viewModel.state.value

Column(
modifier = modifier
.fillMaxSize()
.verticalScroll(state = scrollState)
) {
AccountNameSection(modifier = modifier, viewModel = viewModel)
UpScreenSection(modifier, state, viewModel)   // used above block codes
DownScreenSection(modifier, context)
}
if (state.error.isNotBlank())
SimpleSnackbar(
text = state.error,
modifier = modifier.align(Alignment.BottomCenter)
)

if (state.isLoading)
Loading(modifier = modifier.align(Alignment.BottomCenter))

}
}

как исправить эту ошибку?
Примечание. Я хочу иметь прокручиваемый экран со списком для небольших устройств

Подробнее здесь: https://stackoverflow.com/questions/698 ... ck-compose
Ответить

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

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

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

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

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