在应用程序中我将numColumns
设置为auto_fit
。当电话orientation
为portrait
时,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>
答案 0 :(得分:0)
自动调整仅适用于列具有固定宽度的情况。您需要为列指定固定宽度。将其添加到GridView:
df.drop(df_index, errors="ignore")
以下摘录摘自android:columnWidth="100dp"
GridView's
方法的源代码:
determineColumns
除非您的requestedColumnWidth&gt; 0,你总是得到2列,这是你的情况下的观察结果。
答案 1 :(得分:0)
创建横向布局并将其配置为适合2列以上