Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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
Java 将视图添加到GridLayout中的特定行和列_Java_Android_Android Layout_Drag And Drop_Android Gridlayout - Fatal编程技术网

Java 将视图添加到GridLayout中的特定行和列

Java 将视图添加到GridLayout中的特定行和列,java,android,android-layout,drag-and-drop,android-gridlayout,Java,Android,Android Layout,Drag And Drop,Android Gridlayout,我的最终目标是能够将视图拖放到面向网格的布局中(即,将这些视图的放置限制在单元格而不是任何位置的布局) 我正试图用GridLayout实现这一点,因为它似乎是合适的,但我现在怀疑是否有可能用它实现我想要的 在处理放置时,我尝试将视图添加到GridLayout,如下所示: GridLayout.Spec row = GridLayout.spec(4); GridLayout.Spec column = GridLayout.spec(2);

我的最终目标是能够将视图拖放到面向网格的布局中(即,将这些视图的放置限制在单元格而不是任何位置的布局)

我正试图用
GridLayout
实现这一点,因为它似乎是合适的,但我现在怀疑是否有可能用它实现我想要的

在处理放置时,我尝试将视图添加到
GridLayout
,如下所示:

            GridLayout.Spec row = GridLayout.spec(4);
            GridLayout.Spec column = GridLayout.spec(2);
            LayoutInflater inflater = LayoutInflater.from(gridLayout.getContext());
            gridLayout.addView(inflater.inflate(R.layout.my_view, null), new GridLayout.LayoutParams(row, column));
视图确实会添加到
网格布局中,但不会添加到右侧的单元格(对于上面的代码,该单元格位于第5行第3列)

如何才能正确地执行此操作?除了
GridLayout
,我还应该试试别的吗
GridLayout
似乎很合适,因为我还希望能够在其中放置不同大小的视图(即跨越更多或更少单元格的视图)

多谢各位

编辑: 我正在考虑使用
RelativeLayout
并向其添加视图,如下所示:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(30, 40);
params.leftMargin = 50;
params.topMargin = 60;
relativeLayout.addView(myView, params);

通过这种方式,我可以指定视图的精确坐标(例如
(50;60)

正如我所见,api不提供此功能,但您可以执行以下操作:

您可以设置:

mGridLayout.setOrientation(GridLayout.HORIZONTAL)

mGridLayout.setOrientation(GridLayout.VERTICAL)

如何组织

mGridLayout.addView(视图)


在网格中添加子对象。使用第一种方法(默认值),child首先按列填充,而第二种方法则先按行填充

是否可以使用适配器填充
GridLayout
?然后,您可以通过在集合中添加和删除视图,并调用
notifyDataSetChanged()
@KalaBalik()来添加和删除视图对不起,我不明白这是如何解决问题的。如何使用适配器指定视图在网格中的位置?您的适配器包含一个集合,并按集合的顺序显示项目视图。