java linearlayout_java – 水平LinearLayout与孩子从右到左排序?

我有一个水平的LinearLayout,它以编程方式填充其子代.我希望能够切换到从右到左的布局(即,子0位于最右侧,子1位于其左侧,等等).问题是,我希望布局从RtL切换到LtR并动态返回,这就是为什么,例如this question与我的情况无关.

似乎没有任何方法可以直接在代码中设置它,特别是因为重力是用于对齐而不是排序.

到目前为止,我看到以下解决方法:

>在订购开关上,按顺序重新添加子项(问题:非常难看且耗费资源).

>使用重写的onLayout()方法实现LinearLayout的子类(问题:由于辅助布局成员具有限制性可见性,因此大量复制粘贴Android源代码).

>将LinearLayout替换为另一个,例如一个TableLayout或一个RelativeLayout,并改变开关上子节点的布局参数(问题:仍然有点kludgey).

有更直接的解决方案或更好的解决方法吗?

编辑:澄清一下,我在活动运行期间几乎创建了一次子项,并且我可以将它们存储在辅助数组/集合中,而不会对代码造成任何复杂化.

解决方法:

虽然重新创建子项可能是资源密集型的,但重新排序不应该那么糟糕.您可以使用getChildAt和getChildCount获取现有视图,然后使用addView override with an index将其重新放入.

标签:android,java,android-layout

来源: https://codeday.me/bug/20190902/1790706.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值