我的最终目标是能够拖动视图并将其放入面向网格的布局(即限制将这些视图放置到单元格而不是任何地方的布局)。
我正试图用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));
视图确实会添加到GridLayout
,但不会添加到右侧单元格(对于上面的代码,它将是第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)
)。
答案 0 :(得分:0)
我可以看到api不提供此功能,但是您可以执行以下操作:
您可以设置:
mGridLayout.setOrientation(GridLayout.HORIZONTAL);
或
mGridLayout.setOrientation(GridLayout.VERTICAL);
组织
mGridLayout.addView(view)
将子项添加到网格中。使用第一种方法(默认),子级首先由列填充,而第二个则由行填充