Divider の Composable は存在しますが横線のみで、縦線はなかったので実装してみました。
※Compose 1.0.0-alpha06 時点の話であり、破壊的な変更が入ることがあり得ます。
縦線の Composable を用意します。
Modifier に fillMaxHeight
を指定するのを忘れずに。
@Composable
fun HorizontalDivider(
modifier: Modifier = Modifier
) {
Spacer(
modifier = modifier
.preferredWidth(1.dp)
.fillMaxHeight()
.background(color = MaterialTheme.colors.onSurface.copy(0.12f))
)
}
作成した Divider を使うレイアウトで preferredHeight
に IntrinsicSize.Min
を指定します。
Row(Modifier.preferredHeight(IntrinsicSize.Min)) {
Text(
text = "Label"
)
HorizontalDivider()
}
IntrinsicSize
を使うことでコンテンツの高さを、コンテンツの最小または最大の固有高さと同じにすることができます。
今回のコードでは Row
内の Text
の高さを内部の高さとし、fillMaxHeight
を適用することで Row
の高さいっぱいまで表示させることで縦の Divider を実現しています。