2012-02-11 101 views
0
  1. 如何交换ViewGroup中两个子项的索引?Android和重新排序ViewGroup的子项

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

编辑。

对#2的回答是,setLeft仅适用于API11。同上setX

回答

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); 
+0

确实。我想重新安排孩子,而不必从头开始扩大整个布局。 – SK9 2012-02-11 23:10:19

1

我猜删除的意见和重新充气的布局是唯一的解决办法。也许你可以尝试使用ViewFlipper。我不知道它是否适合你的情况。

0

最好的解决办法: flexbox-layout by Google

FexboxLayout是一个库项目带来CSS灵活盒布局模块到Android的类似的功能。

然后你可以设置

layout_order

这个属性可以改变孩子的视图的排序是如何布局。默认情况下,子项的显示和排列顺序与它们在布局XML中的显示顺序相同。如果未指定,则将1设置为默认值。