即使使用 layout_constraintDimensionRatio="1:1" in Kotlin, android studio,我的按钮也不是正方形

问题描述 投票:0回答:1

我正在尝试使用 constraintlayout 和指南制作一个应用程序。一切正常,除非我试图按下按钮。

这是显示问题所在的设计屏幕截图:我的按钮有一个

layout_constraintDimensionRatio="1:1"
但它不是正方形

Button_Image

我的代码:

<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 在按钮周围制作了一个正方形,所以我认为这只是按钮没有占据顶部和底部的所有位置,但我不知道如何修复它,如果有人可以帮助我的话太好了,谢谢。

android kotlin android-constraintlayout android-button
1个回答
0
投票

您实际的

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
并仅指定插图)并在任何需要方形的按钮上使用该样式。

© www.soinside.com 2019 - 2024. All rights reserved.