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()来添加和删除视图对不起,我不明白这是如何解决问题的。如何使用适配器指定视图在网格中的位置?您的适配器包含一个集合,并按集合的顺序显示项目视图。