5
1

More than 3 years have passed since last update.

Jetpack Compose で縦のDividerを引く

Posted at

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 を使うレイアウトで preferredHeightIntrinsicSize.Min を指定します。

Row(Modifier.preferredHeight(IntrinsicSize.Min)) {
    Text(
        text = "Label"
    )
    HorizontalDivider()
}

IntrinsicSize を使うことでコンテンツの高さを、コンテンツの最小または最大の固有高さと同じにすることができます。
今回のコードでは Row 内の Text の高さを内部の高さとし、fillMaxHeight を適用することで Row の高さいっぱいまで表示させることで縦の Divider を実現しています。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1