1.简介
所谓RTL,顾名思义也就是Right To Left,是一种阿拉伯语、波斯语等情况下从右往左的阅读方式。当所开发的App等面向海外用户时需要做这个适配。从Android 4.2( V 17)开始支持原生的RTL模式。
2.使用
2.1.在<application>节点下配置 android:supportsRtl="true"
2.2.注意使用版本问题
2.3.在父布局中添加 layoutDirect属性
layoutDirect可以使用4种属性:
ltr:从左往右
rtl:从右往左
inherit:从上层视图中继承
locale:由Locale决定分别对应的int值为0,1,2,3。
4.使用Demo
4.1.默认情况下
代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutDirection="ltr"
android:orientation="vertical">
<TextView
android:id="@+id/activity_main_textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#FF0000"
android:gravity="center"
android:padding="10dp"
android:text="TextView1"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/activity_main_textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/activity_main_textview1"
android:background="#FF0000"
android:gravity="center"
android:padding="10dp"
android:text="TextView2"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/activity_main_textview3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/activity_main_textview2"
android:background="#FF0000"
android:gravity="center"
android:padding="10dp"
android:text="TextView3"
android:textColor="#FFFFFF" />
</RelativeLayout>
效果:
4.2.使用rtl模式
4.2.1.其他代码不变
效果:
因为TextView2和TextView3都在TextView1的右边,又设置了RTL模式,所以TextView2和TextView3都不见了。
如何改成和上述代码一样的效果呢
android:layout_toRightOf
改成
android:layout_toEndOfandroid:layout_marginLeft
改成
android:layout_marginStart
即可
代码:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layoutDirection="rtl" android:orientation="vertical"> <TextView android:id="@+id/activity_main_textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="#FF0000" android:gravity="center" android:padding="10dp" android:text="TextView1" android:textColor="#FFFFFF" /> <TextView android:id="@+id/activity_main_textview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginRight="10dp" android:layout_toEndOf="@+id/activity_main_textview1" android:background="#FF0000" android:gravity="center" android:padding="10dp" android:text="TextView2" android:textColor="#FFFFFF" /> <TextView android:id="@+id/activity_main_textview3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginRight="10dp" android:layout_toEndOf="@+id/activity_main_textview2" android:background="#FF0000" android:gravity="center" android:padding="10dp" android:text="TextView3" android:textColor="#FFFFFF" /> </RelativeLayout>
效果: