如何移除Jetpack Compose中TextButton组件的默认内边距?
问题原因
Jetpack Compose的Material设计规范下的TextButton默认自带两个影响边距的配置,你之前修改外层modifier的方式不生效就是因为没有命中这两个内置配置:
- 自带专属的
contentPadding内容内边距,不属于外层modifier的padding控制范围 - 为了符合无障碍触摸标准,默认有最小宽高约束,即使内容尺寸很小也会撑出多余空白
解决代码
TextButton( onClick = {}, // 清除默认最小宽高约束,避免多余留白 modifier = Modifier.defaultMinSize(minWidth = 1.dp, minHeight = 1.dp), // 直接设置内容内边距为0,移除内置边距 contentPadding = PaddingValues(0.dp) ) { Text( " ${getString(R.string.terms_and_conditions)}", color = MaterialTheme.colors.primary, fontFamily = FontFamily(Font(R.font.poppins_regular)), fontSize = 10.sp, ) }
参数说明
contentPadding是TextButton的专属参数,专门控制按钮容器和内部内容之间的边距,优先级高于外层modifier的padding设置defaultMinSize用于覆盖Material组件默认的最小触摸目标尺寸限制,如果你不需要保留无障碍触摸区域,设置为1dp即可完全移除多余空白
内容的提问来源于stack exchange,提问作者BraveEvidence
相关产品推荐
相关产品推荐

