Jetpack Compose Tabelle: Wie kann man die Reihenhöhe dynamisch basierend auf der höchsten Zelle machen?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Jetpack Compose Tabelle: Wie kann man die Reihenhöhe dynamisch basierend auf der höchsten Zelle machen?

by Anonymous » 10 Apr 2025, 10:45

Ich baue einen Tisch in Android mit Jetpack Compose. Ich habe mehrere Spalten in jeder Zeile, und der Inhalt innerhalb der Zellen kann die Länge variieren. Ich möchte, dass sich die Höhe der gesamten Zeile automatisch an die Zelle mit dem längsten Text (oder höchsten Inhalt) in dieser Reihe anpasst. in Screenclass. < /p>

Code: Select all

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>
Unten finden Sie den Text für Gitterzellenelement. < /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
)
Wenn ich versuche, mich mit einer bestimmten Zeile und der Spaltenposition zu ändern, erhöht es sich auf falsche Weise wie:

Top