Material Design按钮标签周围空白过多,设置padding为0dp无效的调整方案问询
解决Material Design按钮标签周围多余空白的问题
嘿,这个问题我之前也碰到过!Material Design风格的按钮自带了默认的内置内边距(inset),这可不是普通的android:padding属性能控制的,所以你设置padding=0dp才没生效。下面给你几个实用的解决办法:
方法1:直接设置inset属性
在你的Button标签里添加android:insetTop、android:insetBottom、android:insetLeft、android:insetRight这几个属性,把它们的值都设为0dp,就能去掉默认的多余空白了。修改后的代码如下:
<Button android:id="@+id/button_close" android:layout_width="77dp" android:layout_height="49dp" android:text="CLOSE" android:textAlignment="center" android:textSize="12sp" android:insetTop="0dp" android:insetBottom="0dp" android:insetLeft="0dp" android:insetRight="0dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" />
方法2:通过自定义Style统一控制
如果你有多个按钮需要调整,推荐用自定义Style来统一设置,避免重复代码:
<style name="NoInsetMaterialButton" parent="Widget.MaterialComponents.Button"> <item name="android:insetTop">0dp</item> <item name="android:insetBottom">0dp</item> <item name="android:insetLeft">0dp</item> <item name="android:insetRight">0dp</item> <!-- 还可以在这里添加其他统一样式,比如字体大小、颜色等 --> </style>
然后给你的Button设置这个Style:
<Button android:id="@+id/button_close" android:layout_width="77dp" android:layout_height="49dp" android:text="CLOSE" android:textAlignment="center" android:textSize="12sp" style="@style/NoInsetMaterialButton" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" />
额外提示
去掉默认inset之后,你可以再通过android:padding属性来微调文本和按钮边缘的距离,达到你想要的精准布局效果。
内容的提问来源于stack exchange,提问作者azeemofwalsall
相关产品推荐
相关产品推荐

