Android和重新排序ViewGroup的子项

时间:2012-02-11 22:16:59

标签: android layout parent-child viewgroup

  1. 如何在ViewGroup中交换两个孩子的索引?

  2. 如何在子视图中使用setLeft?它似乎没有为类View的对象定义。

  3. 编辑。

    对#2的回答是setLeft仅可从API11获得。同上setX

3 个答案:

答案 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设置为默认值。