创建垂直分隔线 Jetpack Compose

wir*_*dev 5 android kotlin android-jetpack-compose

如何使用 Jetpack Compose 创建垂直分隔线?我尝试使用 Spacer 和 Box 来做到这一点,但它根本没有出现。这是我尝试过的:

Box(
    modifier = Modifier
        .fillMaxHeight()
        .width(2.dp)
        .background(color = Color.Black)
)
Run Code Online (Sandbox Code Playgroud)

但这根本行不通。那么如何在 Jetpack Compose 中做垂直分隔线呢?

Noh*_*hus 15

这是一个VerticalDivider可组合项,您可以像内置Divider水平项一样使用它。

@Composable
fun VerticalDivider(
    modifier: Modifier = Modifier,
    color: Color = MaterialTheme.colors.onSurface.copy(alpha = DividerAlpha),
    thickness: Dp = 1.dp
) {
    Box(
        modifier
            .fillMaxHeight()
            .width(thickness)
            .background(color = color)
    )
}

private const val DividerAlpha = 0.12f
Run Code Online (Sandbox Code Playgroud)


Gab*_*tti 6

您可以使用Divider带有width(xx.dp)修饰符的函数,将内部测量值应用到其父容器。

就像是:

Row(Modifier
    .height(IntrinsicSize.Min)
    .fillMaxWidth()
    .background(Color.Yellow)) {

        Text("First Text")

        Divider(
            color = Color.Red,
            modifier = Modifier
                .fillMaxHeight()
                .width(1.dp)
        )

        Text("Second text")
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • @wiryadev 这是不需要的,例如,如果您有固定的高度。但是,如果您想获得答案中报告的布局而不固定高度,则必须使用它。 (2认同)