Jetpack Compose 将可组合切成两半

jetpack compose cut composable in half

如何在 Jetpack Compose 中剪切 TextButton 之类的可组合项,如下图所示?

您可以使用 drawWithContent 修饰符。

Button(
    onClick = {},
    modifier = Modifier.drawWithContent {
        if (layoutDirection == LayoutDirection.Rtl) {
            clipRect(left = size.width / 2f) {
                this@drawWithContent.drawContent()
            }
        } else {
            clipRect(right = size.width / 2f) {
                this@drawWithContent.drawContent()
            }
        }
    }
) {
    Text("some text")
}

注意到我添加了对 RTL 语言的支持,切断了组件的左侧。