我有一个水平的LinearLayout,它的程序用孩子填充。我希望能够切换到从右到左的布局(即,儿童0在最右侧,儿童1在其左侧等)。问题是,我希望布局从RtL切换到LtR并动态返回,这就是为什么例如this question与我的情况无关。水平LinearLayout与从右至左排列的子项?
似乎没有办法直接在代码中设置它,特别是因为引力是用于对齐,而不是排序。
到目前为止,我看到了以下解决方法:
- 在订货开关,重新添加孩子倒顺序(问题:极丑和资源消耗)。 (:由于具有限制性的能见度辅助布局成员大量的复制粘贴的Android的源问题)
- 与一个重写onLayout()方法实现的的LinearLayout一个子类。
- 用另一个例如LinearLayout代替。一个TableLayout或RelativeLayout,并改变开关(问题:仍有点kludgey)的孩子的布局参数。
有没有更直接的解决方案或更好的解决方法?
编辑:为了澄清,我在活动运行期间几乎创建了一次孩子,我可以将它们存储在一个辅助数组/集合中,而不会对代码造成任何影响。
您正在添加孩子来一次布置一个或将它们与循环一起添加? – MKJParekh 2012-03-03 08:13:21
这是一个循环,我可以将引用存储在辅助结构中,而不会太复杂。我将编辑这个问题来澄清这一点。 – 2012-03-03 12:09:57