Establecer LayoutDirection (RTL) para api inferior a 17

Voy a construir una Persian app (RTL) . Mi aplicación incluye un ListView y un cajón de navegación.

He añadido en Manifest en la etiqueta de aplicación android:supportsRtl="true"

Y en el método onCreate() : getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

Sé que LayoutDirection para menos de 17 api no funciona.

Para api nivel 17 y superior:

Introduzca aquí la descripción de la imagen

Para api inferior a 17:

Introduzca aquí la descripción de la imagen

Como resuelvo este problema. 1- ¿Poner una conditional statement para comprobar el api de android y asignar un diseño particular? 2-use la carpeta layout-ldrtl en eclipse? 3 – …? ¿¿Cuál es la mejor manera??

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/myback"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="40dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginLeft="60dp" android:layout_marginRight="60dp" android:layout_marginBottom="20dp" android:layout_marginTop="20dp" > <EditText android:id="@+id/edtxtsearch" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="center_horizontal" android:hint="عبارت مورد جستجو" android:textSize="13dp" > <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_gravity="center" > <ListView android:id="@+id/mylist" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:divider="@android:color/transparent" android:dividerHeight="7dp" android:scrollbarStyle="outsideInset" /> </LinearLayout> </LinearLayout> <FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> <ListView android:id="@+id/list_slidermenu" android:layout_width="240dp" android:layout_height="wrap_content" android:layout_gravity="start" android:choiceMode="singleChoice" android:background="#ffffff" android:dividerHeight="4dp" android:divider="@android:color/transparent" /> </android.support.v4.widget.DrawerLayout> 

Utilice ViewCompat desde android.support.v4.view.ViewCompat!

Me gusta esto :

 ViewCompat.setLayoutDirection (View yourView, int layoutDirection) 

LayoutDirection es una constante de la clase ViewCompat

  • Soporte de RTL: deshabilitarlo sólo para componentes de interfaz de usuario específicos
  • ¿Cómo puedo escribir persa en android?
  • cómo cambiar la dirección del título de CollapsingToolbarLayout?
  • Cómo configurar el cajón de navegación para que se abra de derecha a izquierda
  • La pantalla parpadea cuando se ejecuta en Android 4.2. (La actividad se reinicia continuamente)
  • Desactivar ActionBar RTL Direction
  • RTL se fuerza en dispositivos RTL
  • La dirección del diseño cambia RTL LTR
  • ¿Cómo hago que Android utilice un archivo de recursos calificado sólo en dispositivos antiguos?
  • Soporte de RTL para editext personalizado para izquierda dibujable
  • los elementos del lugar de visualización de la cuadrícula de Android de derecha a izquierda
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.