Как создать таблицу, которая будет прокручиваться по горизонтали и вертикали в Android Jetpack Compose?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Как создать таблицу, которая будет прокручиваться по горизонтали и вертикали в Android Jetpack Compose?

Сообщение Гость »


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

Столбец( модификатор = Модификатор .fillMaxWidth() .heightIn(250.dp, макс = 350.dp) .shadow(5.dp) .clip(RoundedCornerShape(5.dp)) .background(Цвет.Белый) .padding(верх = 8.dp, низ = 8.dp), ГоризонтальноеВыравнивание = Выравнивание.Начало, вертикальнаяАранжировка = Расположение.Верх ) { // некоторый случайный текст Текст("текст") Индикатор() // здесь рисуем таблицу TableView (модификатор, viewState) } и мой код TableView:

@Composable частное развлечение TableView (модификатор: Modifier, viewState: DashletsViewState) { val tableData = viewState.tableData val ScrollState = RememberScrollState (0) состояние val = RememberLazyListState() если (!tableData.isNull()) { val rows = tableData.rows.size + 1 val cols = tableData.columns.flatMap { it.child.orEmpty() }.size + 1 Коробка { LazyColumn( модификатор = Модификатор .fillMaxSize(), ) { элементы(строки) {rowIndex -> Столбец { ЛенивыйРоу( модификатор = Модификатор .wrapContentWidth(без ограничений = true) .height(40.dp) .padding(8.dp) .background(if (rowIndex == 0) Gray14 else Color.White) .horizontalScroll(scrollState), ) { элементы (столбцы) { colIndex -> Коробка( модификатор = Модификатор .size(40.dp) .padding(4.dp), contentAlignment = Выравнивание.Центр, ) { // Содержимое каждой ячейки сетки Текст( text = "($rowIndex, $colIndex)", цвет = Цвет.Черный, ) } } } } } } } } } Я использую одиночный rememberScrollState() для прокрутки всех LazyRow, происходит сбой в Modifier.horizontalScroll(scrollState) и сообщение об ошибке

Фатальное исключение: java.lang.IllegalStateException Горизонтально прокручиваемый компонент был измерен с ограничением максимальной ширины, равным бесконечности, что запрещено. Одной из распространенных причин является вложенность макетов, таких как LazyRow и Row(Modifier.horizontalScroll()). Если вы хотите добавить заголовок перед списком элементов, добавьте заголовок как отдельный элемент() перед основным элементом() внутри области LazyRow. Это может произойти по другим причинам: ваш ComposeView был добавлен в LinearLayout с некоторым весом, вы применили Modifier.wrapContentSize(unbounded = true) или написали собственный макет. Пожалуйста, попробуйте удалить источник бесконечных ограничений в иерархии над контейнером прокрутки. Кто-нибудь может помочь мне это исправить. Я застрял. Или мы можем сделать это другими способами в Jetpack Compose?


Изображение

Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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