如何减小Jetpack Compose中Button组件的内部内边距
你当前的修改方案无法生效,是因为Jetpack Compose的Material Button默认自带固定的内部内边距,外层Modifier设置的padding是控制按钮与其他组件的外部间距,给子Text设置的padding也无法覆盖Button的默认内置内边距。
解决方法
直接在Button的构造参数中传入contentPadding,自定义你需要的内部边距即可,修改后的代码参考如下:
Button( onClick = {}, // 自定义内部边距,horizontal控制左右边距,vertical控制上下边距,可按需调整数值 contentPadding = PaddingValues(horizontal = 4.dp, vertical = 2.dp), shape = RoundedCornerShape(30.dp), border = BorderStroke(1.dp, Color(0xFFC4C4C4)), colors = ButtonDefaults.buttonColors( contentColor = MaterialTheme.colors.onBackground, backgroundColor = MaterialTheme.colors.onBackground ) ) { Text( text = "lorem ipsu", fontSize = 13.sp, textAlign = TextAlign.Center ) }
补充说明
- 若需要完全移除默认内边距,可直接传入
contentPadding = PaddingValues(0.dp) - 调整边距时建议保留合理的点击热区范围,避免按钮过小影响点击操作
当前实现效果参考:
内容的提问来源于stack exchange,提问作者Wafi_ck
相关产品推荐
相关产品推荐

