我有一个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>
答案 0 :(得分:0)
如果要将组件作为GridView居中,最好的方法是使用RelativeLayout。 您可以使用layout_centerInParent将水平和水平居中。 vertical或layout_centerHorizontal仅为水平居中。
例如:
<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>