如何在ViewGroup中交换两个孩子的索引?
如何在子视图中使用setLeft
?它似乎没有为类View
的对象定义。
编辑。
对#2的回答是setLeft
仅可从API11获得。同上setX
。
答案 0 :(得分:1)
您可以删除所有子项,然后按所需顺序添加。我没有找到另一种方式。
恕我直言,重组布局的最佳方法是使用RelativeLayout。
当我这样做时:
// prepare rules
lpTopLeft = new RelativeLayout.LayoutParams(minDimension/5, minDimension/5);
lpTopLeft.setMargins(minDimension/50, minDimension/50, minDimension/50, minDimension/50);
lpTopLeft.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lpTopLeft.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
现在使用准备好的设置:
// rearrange child
bnReset.setLayoutParams(lpTopLeft);
答案 1 :(得分:1)
我想删除视图并重新充气布局是唯一的解决方案。也许你可以尝试使用ViewFlipper。我不知道它是否适合你的情况。
答案 2 :(得分:1)
最佳解决方案: flexbox-layout by Google
FexboxLayout是一个库项目,它将CSS Flexible Box Layout Module的类似功能引入Android。
然后你可以设置
layout_order
此属性可以更改子视图的排序方式。默认情况下,子项的显示和布局顺序与布局XML中显示的顺序相同。如果未指定,则将1设置为默认值。