JetPack Compose Table: Как сделать динамику высоты строки на основе самой высокой ячейки?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 JetPack Compose Table: Как сделать динамику высоты строки на основе самой высокой ячейки?

Сообщение Anonymous »

Я строю таблицу в Android, используя JetPack Compose. У меня есть несколько столбцов в каждой строке, и содержание в ячейках может варьироваться по длине. Я хочу, чтобы высота всей строки автоматически регулировалась, чтобы приспособиться к ячейке с самым длинным текстом (или самым высоким содержанием) в этой строке. Screenclass. < /P>

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

Column(
modifier = Modifier
.height(415.dp)
.wrapContentWidth()
) {
SelectableVerticalGridView(
columnInfos = listOf(
ColumnInfo(R.string.pl_pos_title, width = 50.dp, height = 42.dp),
ColumnInfo(R.string.special_items, width = 92.dp, height = 42.dp),
ColumnInfo(R.string.pl_type, width = 50.dp, height = 42.dp),
ColumnInfo(R.string.pl_pcs, width = 50.dp, height = 42.dp),
ColumnInfo(R.string.pl_wgt, width = 52.dp, height = 42.dp),
ColumnInfo(R.string.pl_batt, width = 60.dp, height = 42.dp)

),
viewModelForCell = { column, row ->
viewModel.viewModelForCell(row, column)
},
headerHeight = 26.dp,
numberOfRows = viewModel.numberOfRows(),
headerColor = Color.Cyan,
rowClickable = true,
cellColor = MenuButtonBackground,
headerFontSize = 17.sp,
fontWeight = FontWeight.Bold,
initialSelected = viewModel.uiState.value.selectedCell,
fontSize = 18.sp,
displayHeaderBorder = true
)
}
< /code>
Ниже приведен текст для элемента ячейки сетки. < /p>
Text(
text = cellViewModel(columnNumber, rowNumber).formattedDisplayText,
maxLines = 2,
modifier = Modifier
.height(columnInfos[columnNumber].height)
.width(columnInfos[columnNumber].width)
.background(
if (displayHighlightCell) cellViewModel(
columnNumber, rowNumber
).selectedColor else cellViewModel(columnNumber, rowNumber).defaultColor
)
.border(if (displayHighlightCell) 2.dp else 0.5.dp, Color.Black)
.testTag("Cell $columnNumber,$rowNumber")
.padding(top = cellTextPadding),
textAlign = cellViewModel(columnNumber, rowNumber).textAlignment,
fontSize = fontSize,
fontWeight = cellViewModel(
columnNumber, rowNumber
).bold,
color = Color.Black,
textDecoration = if (cellViewModel(
columnNumber, rowNumber
).underlined
) TextDecoration.Underline else null
)
Если я пытаюсь изменить с определенной позицией строки и столбца, он увеличивается неправильно, например:

есть способ достичь этой динамической карета строки. Компонируется для отображения табличных данных? Любое руководство или примеры кода будут высоко оценены!

Подробнее здесь: https://stackoverflow.com/questions/795 ... llest-cell
Ответить

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

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

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

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

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