简体   繁体   English

Jetpack Compose:更改 Material3 Divider 中的 startIndent

[英]Jetpack Compose: changing startIndent in Material3 Divider

In androidx.compose.material the Divider component is defined as:androidx.compose.material中,Divider 组件定义为:

@Composable
fun Divider(
    modifier: Modifier = Modifier,
    color: Color = MaterialTheme.colors.onSurface.copy(alpha = DividerAlpha),
    thickness: Dp = 1.dp,
    startIndent: Dp = 0.dp
): Unit

In androidx.compose.material3 the Divider component is defined as:androidx.compose.material3中,Divider 组件定义为:

@Composable
fun Divider(
    modifier: Modifier = Modifier,
    thickness: Dp = DividerDefaults.Thickness,
    color: Color = DividerDefaults.color
): Unit

How can we change startIndent in the new version?我们如何更改新版本中的 startIndent?

Divider is simply a Box with some modifiers. Divider只是一个带有一些修饰符的Box

You can create your own Divider which is similar as divider provided by material:您可以创建自己的Divider ,它类似于材料提供的分隔线:

@Composable
fun CustomDivider(
    modifier: Modifier = Modifier,
    thickness: Dp = DividerDefaults.Thickness,
    color: Color = DividerDefaults.color,
    startIndent: Dp = 0.dp,
) {
    val targetThickness = if (thickness == Dp.Hairline) {
        (1f / LocalDensity.current.density).dp
    } else {
        thickness
    }
    Box(
        modifier
            .fillMaxWidth()
            .padding(start = startIndent)
            .height(targetThickness)
            .background(color = color)
    )
}

The startIndent is a simple start offset achieved with Modifier.padding(start = startIndent) . startIndent是一个简单的起始偏移量,使用Modifier.padding(start = startIndent)实现。

You can simply apply a padding modifier:您可以简单地应用padding修饰符:

androidx.compose.material3.Divider(
    modifier = Modifier.padding(start = 10.dp),
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM