使用以下代码制作GridView。问题是如果GridView有4个孩子,那么它在第一行显示前三个,在第二行显示第四个元素。我希望第四个元素填充第二行的整个宽度。
如果GridView有5个Child,那么最后两个子节点填充第二行的完整宽度。 有什么建议吗?
<GridView
android:id="@+id/gridView1"
android:numColumns="auto_fit"
android:gravity="center"
android:columnWidth="100dp"
android:stretchMode="columnWidth"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</GridView>
子视图布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp" >
<ImageView
android:id="@+id/grid_item_image"
android:layout_width="50px"
android:layout_height="50px"
android:layout_marginRight="10px"
android:src="@drawable/android_logo" >
</ImageView>
<TextView
android:id="@+id/grid_item_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:layout_marginTop="5px"
android:textSize="15px" >
</TextView>
答案 0 :(得分:1)
当你对你的gridView说你想要一个 columnWidth =“100dp”时,它会将你的设备屏幕宽度大小除以100dp ...然后你声明 numColumns = “auto_fit”所以它会使它们符合屏幕尺寸...... 例如:屏幕尺寸= 440dp ... 440/100 = 4 ... 4行可以在一行...图像然后你有5个元素在gridview ...所以它只会把前四个放入第一行和第五到第二行...所以也许在你的情况下,最好的解决方案可以是硬核说法
android:numColumns="2/3/4" (how many you want to, this number can be decided from screen width)