创建时间线喷气背包撰写

时间:2021-02-12 14:07:21

标签: android android-layout android-jetpack-compose

我正在尝试使用 Jetpack Compose 创建一个时间线,我发现几乎不可能为每一行创建没有空格和动态高度的行,具体取决于文本。 我已经尝试过 RowConstraintLayout 并且结果总是一样的。 我发现了一种通过在中间放置 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)
    }
}

Current vs Excpected

0 个答案:

没有答案