Android - 以编程方式设置GridLayout子节点之间的空间?

时间:2014-08-16 09:03:24

标签: android width grid-layout

我有一个以XML格式创建的GridLayout,但是在运行时添加了子/图标。由于某种原因,单元格被压缩在一起,所以如何在运行时设置单元格之间的空间?

我几乎在按钮的OnLongClickListener中使用grid.addView(icon)将图标添加到GridLayout。

这就是我得到的:

Stuff

是的,我正在制作一个发射器。

对此有任何解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以指定16列网格。在第一行(或最后一行)是一个虚拟行(仅包括第一列下面)。

<GridLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="16" >

    <TextView
        android:id="@+id/grid_id_col0"
        android:text="@string/grid_col0" />

    <TextView
        android:id="@+id/camera"
        android:layout_column="0"
        android:layout_columnSpan="6"
        android:layout_row="1"
        android:layout_marginLeft="16dp"
        android:text="camera" />

    <TextView
        android:id="@+id/clock"
        android:layout_column="10"
        android:layout_columnSpan="16"
        android:layout_row="1"
        android:layout_marginLeft="16dp"
        android:text="clock" />

</GridLayout>

在运行时,您可以指定列的宽度。

    TextView colTv = (TextView) inRootView.findViewById(R.id.grid_id_col0);
    colTv.setWidth(colWidth);
    colTv.setVisibility(View.INVISIBLE);

colWidth是从设备宽度除以列数得出的。 如果您留下一些没有任何内容的列,则两个图像之间的空间就在那里。在上面的示例中,第1行的第6列到第9行没有内容。

相关问题