Как создать андроид linearlayout с RTL горизонтальной ориентацией

Я хочу создать линейную компоновку с горизонтальной ориентацией

но я хочу, чтобы он расположил его дочерние элементы, расположенные справа, а не слева от них, как обычно.

как я могу это сделать?

Я знаю, как это сделать, используя relativeLayout, но я хочу практиковать linearLayout

Ответы

Ответ 2

Если вы используете Android-студию, вы можете сделать это:

1- щелкните правой кнопкой мыши по основной папке проекта

2- рефакторинг

3- добавить поддержку RTL

Ответ 3

вы можете использовать этот фрагмент кода, чтобы отменить представления макета.

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));
}

ИЛИ Чтобы начать поддержку макетов RTL в вашем приложении, установите атрибут android: supportRtl для элемента в вашем файле манифеста и установите его "true". Как только вы включите это, система позволит различным API-интерфейсам RTL отображать ваше приложение с макетами RTL. Например, панель действий отобразит значок и заголовок с правой стороны и кнопки действий слева, а любые макеты, созданные вами с помощью классов View, также будут отменены. Посмотрите этот документ Android

Ответ 4

Вы можете установить гравитационный элемент родительского вида вправо

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" <!-- make sure this is not wrap_content !-->
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="right" >

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A"/>

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="B"/>

</LinearLayout