如何删除文本按钮的填充?

Nud*_*dge 15 android kotlin android-jetpack-compose android-compose-button android-jetpack-compose-button

我正在尝试删除填充,TextButton但它不起作用。

TextButton(
    onClick = {},
    modifier = Modifier.padding(0.dp)
) {
    Text(
        " ${getString(R.string.terms_and_conditions)}",
        color = MaterialTheme.colors.primary,
        fontFamily = FontFamily(Font(R.font.poppins_regular)),
        fontSize = 10.sp,
    )
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过在属性中设置height和但填充仍然存在sizeModifier

vov*_*ost 28

将 包裹TextButton起来CompositionLocalProvider以覆盖 的值LocalMinimumTouchTargetEnforcement。这只会删除额外的边距,但不会修改硬编码的defaultMinSize。

CompositionLocalProvider(
    LocalMinimumTouchTargetEnforcement provides false,
) {
    TextButton(
        onClick = {},
        contentPadding = PaddingValues(),
    ) {
        Text(
            "Button",
            color = MaterialTheme.colors.primary,
            fontSize = 10.sp,
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以传递“Modifier.defaultMinSize(minHeight = 1.dp)”来覆盖“Button”的默认最小值,否则将应用该最小值。 (2认同)

Phi*_*hov 14

您无法使用修饰符减少填充padding:它总是在现有填充之上添加额外的填充。有关修饰符顺序的更多详细信息,请参阅此回复。

您可以通过指定 来减少TextButton带有参数的填充,但这不会完全删除填充。contentPaddingPaddingValues(0.dp)

如果需要完全删除填充,可以使用clickable修饰符代替:

Text(
    "getString(R.string.terms_and_conditions",
    color = MaterialTheme.colors.primary,
    fontFamily = FontFamily(Font(R.font.neris_semi_bold)),
    fontSize = 10.sp,
    modifier = Modifier
        .clickable {
            // onClick()
        }
)
Run Code Online (Sandbox Code Playgroud)

如果你想改变波纹的颜色,就像在 中所做的那样TextButton,你可以这样做:

.clickable(
    interactionSource = remember { MutableInteractionSource() },
    indication = rememberRipple(color = MaterialTheme.colors.primary),
) {
    
}
Run Code Online (Sandbox Code Playgroud)


Gab*_*tti 10

您可以通过更改contentPadding并应用固定大小来实现它:

TextButton(
    onClick = {},
    contentPadding = PaddingValues(0.dp),
    modifier = Modifier.height(20.dp).width(40.dp)
) {
    Text(
        "Button",
        color = MaterialTheme.colors.primary,
        fontSize = 10.sp,
    )
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述在此输入图像描述