Android gridview根据动态编号布局其子视图
使用以下代码创建GridView。问题是,如果GridView有4个子元素,那么它在第一行显示前三个,在第二行显示第四个元素。我想要第四个元素来填充第二行的整个宽度 如果GridView有5个子项,则最后两个子项填充第二行的整个宽度。 有什么建议吗Android gridview根据动态编号布局其子视图,android,android-gridview,Android,Android Gridview,使用以下代码创建GridView。问题是,如果GridView有4个子元素,那么它在第一行显示前三个,在第二行显示第四个元素。我想要第四个元素来填充第二行的整个宽度 如果GridView有5个子项,则最后两个子项填充第二行的整个宽度。 有什么建议吗 <GridView android:id="@+id/gridView1" android:numColumns="auto_fit" android:gravity="center" android:colu
<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>
当你对gridView说你想要一个columnWidth=“100dp”时,它会将你的设备屏幕宽度大小除以100dp。。。然后您声明了numColumns=“auto_-fit”,这样它将根据屏幕大小填充它们。。。 屏幕大小=440dp。。。440/100 = 4 ... 4行可以在一行中。。。然后在gridview中有5个元素。。。所以它会把前四个放在第一行,第五个放在第二行。。。因此,也许在你的情况下,最好的解决办法是铁杆说
android:numColumns="2/3/4" (how many you want to, this number can be decided from screen width)
您在每个元素中都尝试过android:layout\u weight=“1”吗?好的。但如果android:numColumns=“3”且元素为4,则我希望4元素填充其行的宽度,这并不是您所能做到的。。。唯一的事情是检查您只有四个元素要显示(您传递给适配器的数组),然后调用grid.setNumColumns(2)…如果是grid.setNumColumns(3),那么我希望第四个元素填充第二行的宽度。