0

我有一个gridview,但它总是排成两列,我希望它总是排成两列。

这是网格布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/newsScroller"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F5F5F5" >

   <GridView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/newsScrollerContent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:horizontalSpacing="10dp"
        android:numColumns="auto_fit"
        android:verticalSpacing="10dp" >
    </GridView>

</ScrollView>

这是网格中的项目。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="5dip"
    android:layout_gravity="center" >

    <ImageView
        android:id="@+id/grid_item_image"
        android:layout_width="130dip"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:src="@drawable/icon" >
    </ImageView>

    <TextView
        android:id="@+id/grid_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/grid_item_image"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="2dp"
        android:gravity="center"
        android:shadowColor="#ffffff"
        android:shadowDx="1"
        android:shadowDy="2"
        android:shadowRadius="2"
        android:textColor="#333333"
        android:textStyle="bold"
        android:textSize="14sp" >
    </TextView>

</RelativeLayout>

我的问题,当我使用设备时,nexus 运行完美,但是如果我使用较小的屏幕设备将只显示一列,如下所示:

在此处输入图像描述

如果我使用平板电脑,那么将是五列。我的问题是,当我在设备中打开任何内容或任何屏幕尺寸时,它如何始终是两列网格。

谢谢。

4

3 回答 3

1

相反android:numColumns="auto_fit",只需使用 :android:numColumns="2" 在每个网格项目中替换fill_parentwrap_content. 更复杂的解决方案是在代码中计算屏幕宽度,然后也通过代码设置项目宽度。

于 2013-01-09T08:49:43.610 回答
0

android:numColumns=2您可以通过在 xml 中使用网格视图的此属性或使用网格视图的此方法来设置列数setNumColumns(2)不要使用自动拟合

于 2013-01-09T08:54:49.297 回答
0

您需要将 android:numColumns 更改为 2,而不是 auto_fit

 <GridView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/newsScrollerContent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:horizontalSpacing="10dp"
    android:numColumns="2"
    android:verticalSpacing="10dp" >
于 2013-01-09T08:50:11.473 回答