Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-通过编程设置GridLayout子项之间的空间?_Android_Width_Grid Layout - Fatal编程技术网

Android-通过编程设置GridLayout子项之间的空间?

Android-通过编程设置GridLayout子项之间的空间?,android,width,grid-layout,Android,Width,Grid Layout,我有一个用XML创建的GridLayout,但是子元素/图标是在运行时添加的。由于某些原因,单元格会被挤压在一起,那么如何在运行时设置单元格之间的空间呢 我基本上是在OnLongClickListener中通过按钮使用grid.addView(icon)将图标添加到GridLayout 这就是我得到的: 是的,我正在做一个发射器 有什么解决办法吗 谢谢 可以指定16列网格。第一行(或最后一行)中有一个虚拟行(下面仅包括第一列) colWidth由设备宽度除以列数得出。 如果您留下一些没有任何内

我有一个用XML创建的GridLayout,但是子元素/图标是在运行时添加的。由于某些原因,单元格会被挤压在一起,那么如何在运行时设置单元格之间的空间呢

我基本上是在OnLongClickListener中通过按钮使用
grid.addView(icon)
将图标添加到GridLayout

这就是我得到的:

是的,我正在做一个发射器

有什么解决办法吗


谢谢

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

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

<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);