我正在尝试使用 constraintlayout 和指南制作一个应用程序。一切正常,除非我试图按下按钮。
这是显示问题所在的设计屏幕截图:我的按钮有一个
layout_constraintDimensionRatio="1:1"
但它不是正方形
我的代码:
<Button
android:id="@+id/button_settings_home"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="@+id/guideline_vertical2_home"
app:layout_constraintStart_toStartOf="@+id/guideline_vertical1_home"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="@+id/guideline_horizontal1_home" />
问题在哪里?我试过
padding="0dp"
当然没用。我还尝试更改围绕它的指南,看看是否是问题所在,但事实并非如此……所以我尝试在论坛上查找,但一无所获。
正如您所见,android studio 在按钮周围制作了一个正方形,所以我认为这只是按钮没有占据顶部和底部的所有位置,但我不知道如何修复它,如果有人可以帮助我的话太好了,谢谢。
您实际的
Button
(View
本身)就像您注意到的那样是正方形的,只是绘制的background(具有按钮的形状)有一些垂直填充,并且在小尺寸(固定的地方填充占视图高度的较大比例)。
您可以使用
insetTop
和 insetBottom
属性进行调整:
<Button
android:id="@+id/button_settings_home"
android:layout_width="0dp"
android:layout_height="0dp"
android:insetTop="0dp"
android:insetBottom="0dp"
给你。
这些属性不是自动建议的,我猜是因为您并不是真的打算在这样的视图上指定它们,而是作为 style 的一部分应用到它。我从这个 Material Design 主题部分 学到了它,它向您展示了如何创建一个方形按钮,仅图标样式。所以 可能 创建自己的方形样式(继承自
Widget.MaterialComponents.Button
并仅指定插图)并在任何需要方形的按钮上使用该样式。