我正在开发支持阿拉伯语和英语语言
的android应用程序对于阿拉伯语,我按照以下步骤操作:
- Android Studio>重构>尽可能添加RTL支持...
- 第二我将这一行粘贴到
manifest.xml
中:android:supportsRtl="true"
或
- 我已使用{strong>
更改了布局属性Left
和Right
Start
和End
哇,我对这种更改感到很高兴,因为当我选择阿拉伯语语言时,某些设计将用于 LTR
,但是当我测试我的应用程序时,我发现了一些问题。
例如,请参见下图:
当我设置RTL时
您可以看到生日(1994年5月15日)显示为LTR
,所有文本都显示为RTL
(DOB,性别,城市)。
这是一个有问题的生日,显示为“ LTR”,然后为什么,其他EditText不会显示在 RTL
。
在这里您可以看到我的代码:
<RelativeLayout
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/_15sdp"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginTop="@dimen/_12sdp"
android:layout_width="match_parent">
<TextView
android:id="@+id/tv_age"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_5sdp"
android:layout_width="wrap_content"
android:text="@string/dob"
android:textColor="@color/color_gray"
android:textSize="@dimen/normal_input_text_size" />
<EditText
android:background="@null"
android:focusable="false"
android:gravity="end"
android:id="@+id/edit_dob"
android:layout_alignParentEnd="true"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_10sdp"
android:layout_toEndOf="@+id/tv_age"
android:layout_width="wrap_content"
android:singleLine="true"
android:text="15/05/1994"
android:textSize="@dimen/normal_input_text_size" />
</RelativeLayout><include layout="@layout/half_view" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_12sdp"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginEnd="@dimen/_15sdp"
android:gravity="center_vertical">
<TextView
android:id="@+id/tv_gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gender"
android:layout_centerVertical="true"
android:textSize="@dimen/normal_input_text_size"
android:textColor="@color/color_gray"
android:layout_marginStart="@dimen/_5sdp" />
<EditText
android:id="@+id/edit_gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/tv_gender"
android:layout_marginStart="@dimen/_10sdp"
android:layout_alignParentEnd="true"
android:gravity="end"
android:text="Male"
android:focusable="false"
android:textSize="@dimen/normal_input_text_size"
android:background="@null"
android:singleLine="true" />
</RelativeLayout><include layout="@layout/half_view" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_12sdp"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginEnd="@dimen/_15sdp"
android:gravity="center_vertical">
<TextView
android:id="@+id/tv_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/city"
android:layout_centerVertical="true"
android:textSize="@dimen/normal_input_text_size"
android:textColor="@color/color_gray"
android:layout_marginStart="@dimen/_5sdp" />
<EditText
android:id="@+id/edit_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/tv_city"
android:layout_marginStart="@dimen/_10sdp"
android:layout_alignParentEnd="true"
android:gravity="end"
android:focusable="false"
android:text="Patan"
android:textSize="@dimen/normal_input_text_size"
android:background="@null"
android:singleLine="true" />
</RelativeLayout>
答案 0 :(得分:1)
尝试一下。
在RTL中,当您将文本设置为数字时,就会发生这种情况。
从API 19添加的LayoutDirection属性,请检查Reference
将以下属性添加到Edittext。
android:layoutDirection="ltr"
RTL ScreenShot
LTR屏幕截图
有关更多信息,请检查此reference For RTL support