Android:GridLayout行全部聚集在一起

时间:2016-02-23 02:57:09

标签: android android-layout android-studio android-gridlayout

我在应用上使用网格布局。列工作正常,但行给我一个问题。

我希望在我正在使用的图像上均匀分布4行。但由于某种原因,这些行都被聚集在一起,只有最后一行排在其他行之前。 这是我第一次使用GridLayout,我无法看到我做错了什么。

<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/imageView"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:src="@drawable/pitch"/>

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:rowCount="4"
    android:numColumns="5"
    android:id="@+id/formation"
    android:layout_alignBottom="@+id/imageView">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Gk"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_gravity="center"
        android:id="@+id/gk"
        android:layout_columnSpan="3" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DL"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_gravity="center"
        android:id="@+id/dl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DC"
        android:layout_row="1"
        android:layout_column="1"
        android:layout_gravity="center"
        android:id="@+id/dcl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DC"
        android:layout_row="1"
        android:layout_column="3"
        android:layout_gravity="center"
        android:id="@+id/dcr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DR"
        android:layout_row="1"
        android:layout_column="4"
        android:layout_gravity="center"
        android:id="@+id/dr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ML"
        android:layout_row="2"
        android:layout_column="0"
        android:layout_gravity="center"
        android:id="@+id/ml" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="MC"
        android:layout_row="2"
        android:layout_column="1"
        android:layout_gravity="center"
        android:id="@+id/mcl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="MC"
        android:layout_row="2"
        android:layout_column="3"
        android:layout_gravity="center"
        android:id="@+id/mcr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="MR"
        android:layout_row="2"
        android:layout_column="4"
        android:layout_gravity="center"
        android:id="@+id/mr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FC"
        android:layout_row="3"
        android:layout_column="1"
        android:layout_gravity="center"
        android:id="@+id/fcl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FC"
        android:layout_row="3"
        android:layout_column="3"
        android:layout_gravity="center"
        android:id="@+id/fcr" />

</GridLayout>

enter image description here

3 个答案:

答案 0 :(得分:1)

建议您使用linearlayout代替gridlayout,在背景中设置您需要使用FrameLayout的图片,如下面的代码所示,

<RelativeLayout 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"
    tools:context=".MainActivity">

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

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/next"
            android:scaleType="centerCrop" />
    </FrameLayout>

    <LinearLayout
        android:id="@+id/formation"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="4">

        <LinearLayout
            android:id="@+id/formation1"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/gk"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="Gk" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/formation2"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/dl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="DL" />

            <Button
                android:id="@+id/dcl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="DC" />

            <Button
                android:id="@+id/dcr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="DC" />

            <Button
                android:id="@+id/dr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="DR" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/formation3"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/ml"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="ML" />

            <Button
                android:id="@+id/mcl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="MC" />

            <Button
                android:id="@+id/mcr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="MC" />

            <Button
                android:id="@+id/mr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="MR" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/formation4"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/fcl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="FC" />

            <Button
                android:id="@+id/fcr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="FC" />
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>

希望这很有用。

答案 1 :(得分:0)

考虑使用包含每行的水平LinearLayouts(或更多GridLayouts)的垂直LinearLayout。然后每个行视图可以将layout_weight设置为相同的值,以便为它们分配相同的空间量。在这种情况下,还要将layout_height设置为0。

答案 2 :(得分:0)

您可以添加:

android:layout_columnWeight="1"
android:layout_rowWeight="1"
每个按钮中的

。像这样:

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:rowCount="4"
    android:numColumns="5"
    android:id="@+id/formation"
    android:layout_alignBottom="@+id/imageView">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Gk"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_gravity="center"
        android:id="@+id/gk"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_columnSpan="3" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DL"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_gravity="center"
        android:id="@+id/dl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DC"
        android:layout_row="1"
        android:layout_column="1"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_gravity="center"
        android:id="@+id/dcl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DC"
        android:layout_row="1"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="3"
        android:layout_gravity="centerl"
        android:id="@+id/dcr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DR"
        android:layout_row="1"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="4"
        android:layout_gravity="center"
        android:id="@+id/dr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ML"
        android:layout_row="2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="0"
        android:layout_gravity="center"
        android:id="@+id/ml" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="MC"
        android:layout_row="2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="1"
        android:layout_gravity="center"
        android:id="@+id/mcl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="MC"
        android:layout_row="2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="3"
        android:layout_gravity="center"
        android:id="@+id/mcr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="MR"
        android:layout_row="2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="4"
        android:layout_gravity="center"
        android:id="@+id/mr" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FC"
        android:layout_row="3"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="1"
        android:layout_gravity="center"
        android:id="@+id/fcl" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FC"
        android:layout_row="3"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:layout_column="3"
        android:layout_gravity="center"
        android:id="@+id/fcr" />

</GridLayout>