我正在尝试使用Gridlayout。我希望网格的按钮充满整个屏幕,但是这样做有问题。我注意到布局本身填满了屏幕,但他的孩子们并未填充布局。这是输出:
http://i.imgur.com/TWNuTaj.png
我在互联网上搜索了很多内容,但是大多数答案都提供了将GridLayout替换为LinearLayout或RelativeLayout的方法,但是我必须坚持使用GridLayout。
我也不想给按钮指定特定的大小,而是保持链接图片中的结构。

这是我的代码:

    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="0.5dp"
android:columnCount="4"
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:rowCount="5"
tools:context=".Level1" >

<Button
    android:layout_width="0dp"
    android:layout_column="0"
    android:layout_row="0"
    android:text="0" />

<Button
    android:id="@+id/b_1"
    android:layout_column="1"
    android:layout_gravity="fill_horizontal"
    android:layout_row="0"
    android:text="1" />

<Button
    android:id="@+id/b_2"
    android:layout_column="2"
    android:layout_gravity="fill"
    android:layout_row="0"
    android:layout_rowSpan="3"
    android:text="2" />

<Button
    android:id="@+id/b_3"
    android:layout_column="3"
    android:layout_row="0"
    android:text="3" />

<Button
    android:layout_width="0dp"
    android:layout_column="0"
    android:layout_row="1"
    android:text="0" />

<Button
    android:id="@+id/b_4"
    android:layout_column="1"
    android:layout_gravity="fill_vertical"
    android:layout_row="1"
    android:layout_rowSpan="3"
    android:text="4" />

<Button
    android:id="@+id/b_6"
    android:layout_column="3"
    android:layout_gravity="fill_vertical"
    android:layout_row="1"
    android:layout_rowSpan="3"
    android:text="6" />

<Button
    android:layout_width="0dp"
    android:layout_column="0"
    android:layout_row="2"
    android:text="0" />

<Button
    android:id="@+id/b_5"
    android:layout_column="2"
    android:layout_row="3"
    android:text="5" />

<Button
    android:layout_width="0dp"
    android:layout_column="0"
    android:layout_row="3"
    android:text="0" />

<Button
    android:layout_height="0dp"
    android:layout_column="0"
    android:layout_columnSpan="4"
    android:layout_row="4"
    android:text="0" />

</GridLayout>

最佳答案

尝试这种方式,希望这将帮助您解决问题。

GridLayout:“ GridLayout不支持按重量定义的重量原理。通常,因此,无法配置GridLayout以不平凡的比例在多行或多列之间分配多余的空间...为了完全控制行或列中多余的空间分布,请使用LinearLayout子视图将组件保留在关联的单元格组中。”

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">
        <Button
            android:layout_width="match_parent"
            android:layout_weight="0.20"
            android:layout_height="0dp"
            android:text="1" />

        <Button
            android:layout_width="match_parent"
            android:layout_weight="0.80"
            android:layout_height="0dp"
            android:text="4" />

    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">
        <Button
            android:layout_width="match_parent"
            android:layout_weight="0.80"
            android:layout_height="0dp"
            android:text="2" />

        <Button
            android:layout_width="match_parent"
            android:layout_weight="0.20"
            android:layout_height="0dp"
            android:text="5" />

    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">
        <Button
            android:layout_width="match_parent"
            android:layout_weight="0.20"
            android:layout_height="0dp"
            android:text="3" />

        <Button
            android:layout_width="match_parent"
            android:layout_weight="0.80"
            android:layout_height="0dp"
            android:text="6" />
    </LinearLayout>
</LinearLayout>

关于android - GridLayout没有填满屏幕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26312723/

10-14 23:45