RelativeLayout中TextView适配RTL大坑记录

问题如下

RelativeLayout中有一个图片和文字,一左一右,顶边,在RTL情况下发现,文字紧贴图片.

代码如下:

<RelativeLayout
     android:id="@+id/rl_0"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginBottom="20dp">

     <ImageView
         android:id="@+id/iv_0"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:src="@mipmap/ic_launcher" />

     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="20dp"
         android:layout_toEndOf="@+id/iv_0"
         android:layout_toRightOf="@+id/iv_0"
         android:text="目标布局在ltr的时候表现良好,在rtl的情况下会暴露问题,让人感觉gravity属性失效." />

     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_alignParentEnd="true"
         android:layout_alignParentRight="true"
         android:layout_toEndOf="@+id/iv_0"
         android:layout_toRightOf="@+id/iv_0"
         android:ellipsize="end"
         android:gravity="end"
         android:maxLines="1"
         android:singleLine="true"
         android:text="--------------点击+++++++++++" />

 </RelativeLayout>

研究一番后发现”点击”TextView的gravity看似失效了.

其实是在设置了layout_alignParentEndandroid:layout_toEndOf属性后TextView的边界已经固定死了,而不是wrap_content,gravity仍然生效,不过end还是之前的LRT布局情况下的end.

最后同事在StackOverFlow找到了一点蛛丝马迹,添加android:textAlignment="viewEnd"即可.说实话,这玩意儿平时还真没用过.

在码云上写了Demo记录一下,地址