在 RelativeLayout 中居中 GridView

Centering GridView in 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>

如何将其居中?谢谢

移除 RelativeLayout 的重心。将此添加到您的 GridView:

            android:layout_gravity="center_vertical"

不要在 RelativeLayout 上使用 android:gravity,您应该使用 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>

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