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

Forum für diejenigen, die für Android programmieren
Anonymous
 Jetpack Compose Tabelle: Wie kann man die Reihenhöhe dynamisch basierend auf der höchsten Zelle machen?

Post by Anonymous »

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:

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post