【问题标题】:Android Studio: Buttons in Grid Layout change size in emulatorAndroid Studio:网格布局中的按钮在模拟器中更改大小
【发布时间】:2019-06-09 09:42:36
【问题描述】:

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>

【问题讨论】:

  • 使用线性布局它为所有手机提供相同的布局

标签: android grid grid-layout android-gridlayout


【解决方案1】:

正如您在此 document 中看到的那样。 android:layout_gravity="fill"

如果需要,增加对象的水平和垂直大小 完全填满它的容器

这里你的容器大小是match_parent。所以它正在填充你的布局。现在让你的容器(GridLayout)wrap_content,否则正确使用gravity属性

【讨论】:

  • 那么你推荐什么重力?我尝试在网格和按钮中更改它们...
  • @CrashendoDt 我建议您为此使用线性布局。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2016-04-28
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多