在RelativeLayout中居中GridView

时间:2015-03-12 23:14:50

标签: java android gridview relativelayout

我正在尝试将GridView置于RelativeLayout中心。我将GridView的高度设置为wrap_content,RelativeLayout的重力为中心,但GridView仍然在顶部对齐。这就是我所拥有的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent"
    tools:context="com.example.sixerstrivia.MainActivity" >

    <GridView
        android:id="@+id/dashboardGrid"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:columnWidth="100dp"
        android:horizontalSpacing="20dp"
        android:numColumns="2"
        android:stretchMode="columnWidth"
        android:verticalSpacing="20dp" >
    </GridView>

</RelativeLayout>

我该如何居中?感谢

3 个答案:

答案 0 :(得分:1)

不应在android:gravity上使用RelativeLayout,而应使用android:layout_centerVertical

<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="com.example.sixerstrivia.MainActivity" >

    <GridView
        android:id="@+id/dashboardGrid"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:layout_centerVertical="true"
        android:columnWidth="100dp"
        android:horizontalSpacing="20dp"
        android:numColumns="2"
        android:stretchMode="columnWidth"
        android:verticalSpacing="20dp" >
    </GridView>

</RelativeLayout>

答案 1 :(得分:1)

请将这些添加到您的GridView:android:layout_centerVertical="true"android:layout_centerHorizontal="true"

答案 2 :(得分:0)

从RelativeLayout中移除中心重力。将其添加到您的GridView:

            android:layout_gravity="center_vertical"