android - Establezca LayoutDirection(RTL) para una API inferior a 17
right-to-left (1)
Voy a construir una Persian app (RTL)
. Mi aplicación incluye un ListView y un cajón de navegación.
Agregué en Manifest
en la etiqueta de la 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:
para api inferior a 17:
¿Cómo resuelvo este problema? 1- ¿Poner una conditional statement
para verificar la API de Android y asignar un diseño en particular? 2-use folder 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>
use ViewCompat desde android.support.v4.view.ViewCompat!
Me gusta esto :
ViewCompat.setLayoutDirection (View yourView, int layoutDirection)
layoutDirection es una constante de la clase ViewCompat