0

私はグリッドビューを持っていますが、常に 2 列に並んでいました。常に 2 列に並んでいたらよかったのにと思います。

これはグリッド レイアウトです。

<?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 を使用すると完全に動作しますが、小さい画面のデバイスを使用すると、以下に示すように 1 つの列だけが表示されます。

ここに画像の説明を入力

また、タブレットを使用する場合は、5 列になります。私の質問は、デバイスで何かまたは任意の画面サイズを開くと、常に 2 列のグリッドになるということです。

ありがとう。

4

3 に答える 3

1

代わりandroid:numColumns="auto_fit"に以下を使用してください:android:numColumns="2" 各グリッド項目fill_parentをに置き換えwrap_contentます。より複雑な解決策は、コードで画面の幅を計算し、コードで項目の幅を設定することです。

于 2013-01-09T08:49:43.610 に答える
0

android:numColumns を auto_fit ではなく 2 に変更する必要があります

 <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 に答える
0

xml でグリッド ビューのこのプロパティを使用するandroid:numColumns=2か、グリッド ビューのこのメソッドを使用して、列数を設定できますsetNumColumns(2)auto fit を使用しないでください。

于 2013-01-09T08:54:49.297 に答える