Как сделать лейаут, расширяющийся от внутренних элементов?

Хочу сделать лейаут наподобии выпадающего списка, при нажатии он должен расширятся показывая строчки с дополнительной информацией, пробовал вот так:

@Composable
fun Item(
){
    var showContent by remember { mutableStateOf(true) }


    Card(
        modifier = Modifier
            .fillMaxWidth()
            .height(IntrinsicSize.Min)
            .clickable {
                showContent = !showContent
            }
            .padding(bottom = 7.dp),
        shape = CutCornerShape(0.dp),
    ) {
        Row {
            Divider(
                color = primary_color,
                modifier = Modifier
                    .fillMaxHeight()
                    .width(2.dp)
            )
            Column(
                modifier = Modifier
                    .padding(start = 10.dp, top = 5.dp, bottom = 5.dp)
            ) {
                Box(
                    modifier = Modifier
                        .fillMaxWidth()
                ){
                    Text(
                        text = "sdasdasdad",
                        fontSize = 20.sp,
                        style = MaterialTheme.typography.body1,
                        overflow = TextOverflow.Ellipsis,
                        color = primary_dark,
                        textAlign = TextAlign.Left,
                        maxLines = 1,
                        modifier = Modifier
                            .align(Alignment.TopStart),
                    )
                    Icon(
                        imageVector = Icons.Outlined.ArrowDropDown,
                        contentDescription = null,
                        tint = primary_dark,
                        modifier = Modifier
                            .align(Alignment.TopEnd)
                            .padding(top = 2.dp),
                    )
                }



                if(showContent){
                    Column(modifier = Modifier
                        .padding(start = 5.dp, end = 17.dp, bottom = 4.dp)
                    ) {
                        InfoLine("dasdasdasd", "10")
                        InfoLine("dasdasdasd", "10")
                        InfoLine("dasdasdasd", "10")
                        InfoLine("dasdasdasd", "10")
                        InfoLine("dasdasdasd", "10")
                        InfoLine("dasdasdasd", "10")
                        InfoLine("dasdasdasd", "10")
                        InfoLine("dasdasdasd", "10")
                    }
                    
                }




            }
        }
    }



}

@Composable
fun InfoLine(title: String, value: String){
    Box(modifier = Modifier.fillMaxWidth()){
        Text(
            text = title,
            fontSize = 20.sp,
            style = MaterialTheme.typography.body1,
            overflow = TextOverflow.Ellipsis,
            color = primary_color,
            textAlign = TextAlign.Left,
            maxLines = 1,
            modifier = Modifier
                .align(Alignment.TopStart),
        )

        Text(
            text = value,
            fontSize = 20.sp,
            style = MaterialTheme.typography.body1,
            overflow = TextOverflow.Ellipsis,
            color = primary_color,
            textAlign = TextAlign.Left,
            maxLines = 1,
            modifier = Modifier
                .align(Alignment.TopEnd),
        )
    }
}

Пробовал также через LazyColumn, но получал ошибку:

Asking for intrinsic measurements of SubcomposeLayout layouts is not supported.

Можно ли как-то сделать такой лейаут в Jetpack Compose?


Ответы (0 шт):