需要帮助在网格布局(2x2)内创建4个相对布局,并在每个相对布局的中心放置一个按钮

时间:2018-03-07 15:57:02

标签: android android-layout button alignment center

我试图创建一个2x2网格布局,网格中的每个位置都有一个相对布局。稍后,在每个位置内,我想​​创建一个按钮,并将其置于此按钮所在的相对布局中(在这种情况下是父母,我是对的吗?)

所以,到目前为止,我创造的一切都没有问题,但后来我陷入了按钮的中心位置。

我已将android:gravity="center_horizontal"android:layout_alignParentTop="true";

一起使用

我也尝试过使用android:layout_gravity="center"

似乎没有工作。我将在下面发布完整的xml代码 - 尝试将第一个按钮放在第一个相对布局中,但没有成功。我做过一些研究,但找不到适合我案例的答案。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.victorpietro.musicproject.MainActivity">


    <GridLayout
        android:id="@+id/gridLayout"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:rowCount="2"
        android:columnCount="2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <RelativeLayout
            android:id="@+id/r_layout1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:layout_columnWeight="1"
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:gravity="fill">

            <Button
                android:id="@+id/button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_gravity="center"
                android:gravity="center_horizontal"
                android:text="Button" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/r_layout2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:layout_columnWeight="1"
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:gravity="fill">

            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/r_layout3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:layout_row="1"
            android:gravity="fill"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1">

            <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
        </RelativeLayout>


        <RelativeLayout
            android:id="@+id/r_layout4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:layout_row="1"
            android:gravity="fill"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1">

            <Button
                android:id="@+id/button4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
        </RelativeLayout>

    </GridLayout>

</android.support.constraint.ConstraintLayout>

1 个答案:

答案 0 :(得分:1)

android:gravity="fill"移除RelativeLayout并添加android:layout_gravity="center"

 <RelativeLayout
        android:id="@+id/r_layout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnWeight="1"
        android:layout_row="0"
        android:layout_gravity="center"
        android:layout_rowWeight="1"
        >

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button"/>
    </RelativeLayout>