在我的布局中,我只有八个单元格.
我希望单元格划分屏幕上的所有可用空间.这可能吗?
我希望单元格划分屏幕上的所有可用空间.这可能吗?
这是我的gridview布局:
<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dataGrid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10px" android:verticalSpacing="10px" android:horizontalSpacing="10px" android:numColumns="2" android:gravity="fill" />
这是项目布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="6dip" > <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#E00000" android:textStyle="bold" android:gravity="left" android:textSize="16dip"/> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#000000" android:textStyle="normal" android:gravity="right" android:textSize="12dip"/> </LinearLayout> </TableRow> </LinearLayout>
解决方法
遗憾的是,GridView是一个棘手的布局,可以操作以使内部视图适合您正在尝试的特定大小.我认为将GridView视为高级ListView更合适,用于显示可变长度,可滚动的列表,如相册中的缩略图,而不是“网格”.当我最初想要为游戏制作一个固定大小的网格时,我开始沿着这条路走下去,但根本不适合这种布局.
由于您的网格总是8个单元格,我建议使用嵌套的LinearLayouts(或者如果您不希望所有单元格大小完全相同,则表示更复杂的TableLayout / TableRow组合):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1.0" > <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0.5" android:orientation="horizontal" android:weightSum="1.0" > <!-- Drop in 4 items here with layout_weight of 0.25 --> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0.5" android:orientation="horizontal" android:weightSum="1.0" > <!-- Drop in 4 items here with layout weight of 0.25 --> </LinearLayout > </LinearLayout >
这将使固定的2×4网格始终完全填满屏幕.