我要构建一个Persian app (RTL)
。
我的应用程序包括ListView和导航抽屉
。
我在应用标记Manifest
android:supportsRtl="true"
和onCreate()
方法:getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
我知道LayoutDirection
少于17个api不起作用。
对于api等级17及更高:
表示api低于17:
如何解决此问题。 1-放一个conditional statement
来检查android api并指定一个特定的布局?在eclipse中使用2个文件夹layout-ldrtl
? 3 - ......?
什么是最好的方式??
<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>
答案 0 :(得分:18)
使用android.support.v4.view.ViewCompat中的 ViewCompat !
ViewCompat.setLayoutDirection (View yourView, int layoutDirection)
layoutDirection是ViewCompat类的常量
答案 1 :(得分:0)
只需将您要在textView中设置的每个字符串与"\u202B"
它只是将文本强制为RTL。
String textWhichIsLTR = "LTR or RTL text that you want to enforce to RTL";
String enforcedRTL = textWhichIsLTR + "\u202B";
fooTextView.setText(enforcedRTL);