为什么GridLayout(Android)没有填满屏幕?

时间:2014-05-03 03:28:28

标签: android android-gridlayout

我正在尝试构建类似跳棋(不是实际的跳棋)的Android应用,但我在创建初始电路板布局时遇到了问题。我拥有游戏本身的所有java代码,但我现在需要将其同步并进行同步。与android环境。

我使用的是GridLayout,因为我的游戏是基于2D数组的,我认为最简单的方法是将游戏数组中的每个单元格映射到网格中。

我的4x8表的XML如下:

<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:background="@color/Beige"

    android:useDefaultMargins="true"

    android:columnCount="4"
    android:rowCount="8"

    android:orientation="vertical"

    tools:context="com.example.saltpepper.PlayTogetherActivity$PlaceholderFragment" >

    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
        <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
        <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
        <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
        <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
        <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
        <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"

        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/Beige"
        />
    <Button
        android:layout_margin="3dp"
        android:background="@color/DarkBlue"
        />
</GridLayout>

但由于某种原因,它会将整个桌面对齐到屏幕的左上角,因此有无关的空白区域,如您所见: screenshot

为什么会发生这种情况?在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

您创建了一个未使用gravitystretchMode参数设置的网格布局, 据我了解你的问题, 您没有在gravity内实施stretchModegrid layout 将这些参数添加到xml

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
...
android:stretchMode="columnWidth"
android:gravity="center"
/> 

有关创建自定义网格元素的更多详细信息,请访问here