请参阅:
代码:
<RelativeLayout
android:id="@+id/circle_card_payment"
android:layout_width="40dp"
android:layout_height="40dp">
<com.google.android.material.button.MaterialButton
android:id="@+id/logo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/colorBlack"
android:insetLeft="0dp"
android:insetTop="0dp"
android:insetRight="0dp"
android:insetBottom="0dp"
android:text="W"
android:textColor="#FFFFFF"
android:textSize="16sp"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay_ButtonCircle50"
app:strokeWidth="0dp" />
</RelativeLayout>
style.xml
<style name="ShapeAppearanceOverlay_ButtonCircle50">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">20dp</item>
</style>
为了确认材质按钮包含全部空间,我将材质按钮的颜色改为黑色。并且内部文本颜色为白色。
有人可以根据我的情况给我确切的解决方案吗?请注意,您不应将相对布局尺寸从40 dp增加到50 dp,我知道可以解决此问题,但是徽标尺寸会更大,这是不合适的。
请注意,我必须将此按钮包装在任何根目录布局中。那是强制性的。就像现在一样,我的材质按钮位于相对布局内。
答案 0 :(得分:3)
为什么MaterialButton文本不包含完整空格?
问题出在材质按钮上,因为默认情况下材质按钮带有填充。您可以通过在xml本身中设置padding属性来删除或覆盖该padding,这应该可以解决问题。
只需添加android:padding =“ 0dp”即可解决此问题。或按照{strong> Ricardo.A 的建议,以<item name="android:padding">0dp</item>
<RelativeLayout
android:id="@+id/circle_card_payment"
android:layout_width="40dp"
android:layout_height="40dp">
<com.google.android.material.button.MaterialButton
android:id="@+id/logo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="#323232"
android:insetLeft="0dp"
android:insetTop="0dp"
android:insetRight="0dp"
android:padding="0dp"
android:insetBottom="0dp"
android:text="W"
android:textColor="#FFFFFF"
android:textSize="16sp"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay_ButtonCircle50"
app:strokeWidth="0dp" />
</RelativeLayout>
使用默认填充的结果。
希望这会有所帮助,快乐编码!