反转LinearLayout的方向

Zer*_*ric 17 android android-ui android-layout

如何反转线性布局的方向?

例如,如果我的布局是[view1,view2,view3],我想创建[view3,view2,view1].我的目标是从一个XML布局中扩展左手和右手实例.

mtm*_*ock 11

通常我会说你不能使用标准SDK来做到这一点.但是,您可以创建一个方法,从LinearLayout中获取所有子视图,将它们从LinearLayout中删除,然后以相反的顺序将它们添加回来.

LinearLayout ll = // inflate
ArrayList<View> views = new ArrayList<View>();
for(int x = 0; x < ll.getChildCount(); x++) {
    views.add(ll.getChildAt(x));
}
ll.removeAllViews();
for(int x = views.size() - 1; x >= 0; x--) {
    ll.addView(views.get(x));
}
Run Code Online (Sandbox Code Playgroud)


Dmi*_*try 7

只需将以下代码添加到LinearLayout

android:layoutDirection="rtl"
Run Code Online (Sandbox Code Playgroud)

但它会永久颠倒顺序 - 不仅适用于 RTL 语言环境:(


mah*_*i_m 6

这是最简单的方法:)

for(int k = ll.getChildCount()-1 ; k >= 0 ; k--)
{
    View item = ll.getChildAt(k);
    ll.removeViewAt(k);
    ll.addView(item);
}
Run Code Online (Sandbox Code Playgroud)