Android为网格视图设置自动auto_fit

时间:2015-08-11 22:38:27

标签: android

在应用程序中我将numColumns设置为auto_fit。当电话orientationportrait时,GridView需要2列,并且在将电话转为landscape之后,GridView有2列,并且不会自动更改为超过2列。

GridView布局:

<GridView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:gravity="center"></GridView>

和GridView列布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">
    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="2dp">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">
            <ImageView
                android:id="@+id/grid_item_image"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_marginRight="10px"
                android:src="@drawable/icon_inbox"
                android:layout_gravity="center"></ImageView>
            <TextView
                android:id="@+id/grid_item_label"
                android:layout_width="fill_parent"
                android:layout_height="30dp"
                android:layout_marginTop="5px"
                android:text="ffffffffffffff"
                android:textSize="15sp"
                android:textColor="#000000"
                android:gravity="center"></TextView>
        </LinearLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

自动调整仅适用于列具有固定宽度的情况。您需要为列指定固定宽度。将其添加到GridView:

df.drop(df_index, errors="ignore")

以下摘录摘自android:columnWidth="100dp" GridView's方法的源代码:

determineColumns

除非您的requestedColumnWidth&gt; 0,你总是得到2列,这是你的情况下的观察结果。

答案 1 :(得分:0)

创建横向布局并将其配置为适合2列以上