Android Studio:网格布局中的按钮在模拟器中更改大小

Android Studio: Buttons in Grid Layout change size in emulator

enter image description here

我不知道如何使所有按钮大小相同...我尝试制作网格来包装内容,它起作用了,但按钮大小因字符数而略有不同。有谁知道如何格式化这些东西?

我尝试添加行数和列数、重力等,但没有任何改变。

这是我的 XML 代码:

<GridLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <Button
        android:text="Hello"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/hello"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Do you speak &#10; English?"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/english"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Good Evening"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/goodEvening"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Please"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/please"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="My name is"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/name"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Welcome"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/welcome"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="How are you?"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/howAreYou"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="I live in"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/iLiveIn"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

</GridLayout>

如果您打算使用 GridLayout,请从 match_parent 更改为 wrap_content:

<GridLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">
</GridLayout>

如果不是,则使用约束准则或线性布局

如您在此 document 中所见。 android:layout_gravity="fill"

Grow the horizontal and vertical size of the object if needed so it completely fills its container

此处您的容器大小为 match_parent。所以它正在填充您的布局。现在制作你的容器(GridLayout) wrap_content ,否则正确使用 gravity 属性