我有一个水平的linearLayout,它以编程方式填充其子代.我希望能够切换到从右到左的布局(即,子0位于最右侧,子1位于其左侧,等等).问题是,我希望布局从RtL切换到LtR并动态返回,这就是为什么,例如this question与我的情况无关.
似乎没有任何方法可以直接在代码中设置它,特别是因为重力是用于对齐而不是排序.
到目前为止,我看到以下解决方法:
>在订购开关上,按顺序重新添加子项(问题:非常难看且耗费资源).
>使用重写的onLayout()方法实现linearLayout的子类(问题:由于辅助布局成员具有限制性可见性,因此大量复制粘贴AndroID源代码).
>将linearLayout替换为另一个,例如一个tableLayout或一个relativeLayout,并改变开关上子节点的布局参数(问题:仍然有点kludgey).
有更直接的解决方案或更好的解决方法吗?
编辑:澄清一下,我在活动运行期间几乎创建了一次子项,并且我可以将它们存储在辅助数组/集合中,而不会对代码造成任何复杂化.
解决方法:
虽然重新创建子项可能是资源密集型的,但重新排序不应该那么糟糕.您可以使用getChildAt
和getChildCount
获取现有视图,然后使用addView
override with an index将其重新放入.
以上是内存溢出为你收集整理的java – 水平LinearLayout与孩子从右到左排序?全部内容,希望文章能够帮你解决java – 水平LinearLayout与孩子从右到左排序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)