[英]Horizontal LinearLayout with children ordered right-to-left?
我有一個水平的LinearLayout,它以編程方式填充其子代。 我希望能夠切換到從右到左的布局(即,子0位於最右側,子1位於其左側,等等)。 問題是,我希望布局從RtL切換到LtR並動態返回,這就是為什么例如這個問題與我的情況無關。
似乎沒有任何方法可以直接在代碼中設置它,特別是因為重力是用於對齊而不是排序。
到目前為止,我看到以下解決方法:
有更直接的解決方案或更好的解決方法嗎?
編輯:澄清一下,我在活動運行期間幾乎創建了一次子項,我可以將它們存儲在輔助數組/集合中,而不會使代碼復雜化。
雖然重新創建子項可能是資源密集型的,但重新排序不應該那么糟糕。 您可以使用getChildAt
和getChildCount
獲取現有視圖,然后使用帶索引的addView
覆蓋將它們重新放入。
執行LinearLayout.setRotationY(180)。 您還必須將“線性布局”的子視圖的Y旋轉設置為180。 例如:
private void horizontal() {
LinearLayout layout = (LinearLayout) v.findViewById(R.id.layout);
View childView1 = (View) v.findViewById(R.id.childView1);
View childView2 = (View) v.findViewById(R.id.childView2);
layout.setRotationY(180);
childView1.setRotationY(180);
childView2.setRotationY(180);
}
代碼可能是錯誤的,但你明白了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.