我正在尝试使用 Jetpack Compose 创建一个时间线,我发现几乎不可能为每一行创建没有空格和动态高度的行,具体取决于文本。
我已经尝试过 Row
和 ConstraintLayout
并且结果总是一样的。
我发现了一种通过在中间放置 Box
来使 Text
可见的作弊方法,否则 Box
永远不会获得高度。
我做错了什么?
@Composable
fun SessionMaterialRow(item:String){
ConstraintLayout(modifier = Modifier) {
val (lineReference,textReference) = createRefs()
Box(
modifier = Modifier.constrainAs(lineReference){
top.linkTo(parent.top)
bottom.linkTo(parent.bottom)
start.linkTo(parent.start,20.dp)
width = Dimension.preferredValue(2.dp)
}
.background(color = Color.Red)
){
Text(" ")
}
DefaultText( modifier = Modifier.constrainAs(textReference){
top.linkTo(parent.top)
bottom.linkTo(parent.bottom)
start.linkTo(lineReference.start,10.dp)
end.linkTo(parent.end)
},
text = stringResource(id = R.string.title_session_number,"")+ " - " +"Text",
style = title2Style
)
}
}
而且我还有“LazyColumn”。
LazyColumn {
items(listItems) {
SessionMaterialRow(item = it)
}
}