Android - 线性布局中的中心网格视图并使用水平间距

时间:2015-02-16 07:39:05

标签: android android-layout gridview

我有一个Android应用,我试图将网格视图置于线性布局中。我不必使用线性布局,但如果可能,我更愿意。

我想在网格视图中设置水平间距(列之间的空间),以及在父视图中居中网格视图。

当我在XML中使用android:stretchMode="none"时,水平间距有效。但是,当我这样做时,网格视图保持对齐。使用android:stretchMode="columnWidth"网格视图居中,但水平间距不起作用。

我怎么能同时拥有两者?

下面我的XML示例(水平间距有效,居中没有):

<LinearLayout 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:orientation="vertical"
    android:gravity="center_horizontal">

    <GridView
        android:id="@+id/myList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="auto_fit"

        android:horizontalSpacing="1dp"
        android:columnWidth="400dp"

        android:stretchMode="none"
        android:layout_gravity="center_horizontal">
    </GridView>


</LinearLayout>

1 个答案:

答案 0 :(得分:0)

如果要将组件作为GridView居中,最好的方法是使用RelativeLayout。 您可以使用layout_centerInParent将水平和水平居中。 vertical或layout_centerHorizo​​ntal仅为水平居中。

例如:

<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" >

    <GridView
        [...]
        android:layout_centerInParent="true"
        android:layout_centerHorizontal="true" >
    </GridView>
</RelativeLayout>