Android RTL语言环境。如何仅在支持区域设置时镜像?

Android RTL语言环境。如何仅在支持区域设置时镜像?,android,locale,right-to-left,Android,Locale,Right To Left,我有一个支持希伯来语的应用程序,并在清单中声明它支持RTL语言环境。但是,我不支持其他RTL区域设置,并且希望在设置这些区域设置时不要镜像我的视图。例如,我不希望我的应用程序的视图在阿拉伯语区域中从右向左切换,因为我不支持阿拉伯语,因此文本将以英语显示。我想最好的方法是根据语言选择android:supportsRtl值。为此,请参见以下内容: AndroidManifest.xml <application android:icon="@drawable/ic_launcher

我有一个支持希伯来语的应用程序,并在清单中声明它支持RTL语言环境。但是,我不支持其他RTL区域设置,并且希望在设置这些区域设置时不要镜像我的
视图。例如,我不希望我的应用程序的
视图在阿拉伯语区域中从右向左切换,因为我不支持阿拉伯语,因此文本将以英语显示。

我想最好的方法是根据语言选择
android:supportsRtl
值。为此,请参见以下内容:

AndroidManifest.xml

 <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:supportsRtl="@string/is_hebrew" >...</application>
使用
值,他/strings.xml
添加:

<string name="is_hebrew">false</string>
<string name="is_hebrew">true</string>
true

我想最好的方法是根据语言选择
android:supportsRtl
值。为此,请参见以下内容:

AndroidManifest.xml

 <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:supportsRtl="@string/is_hebrew" >...</application>
使用
值,他/strings.xml
添加:

<string name="is_hebrew">false</string>
<string name="is_hebrew">true</string>
true

您可以选择在运行时打开或关闭镜像。看见这仅限于4.2或更高版本,并且仅限于活动的onCreate()。

您可以选择在运行时打开或关闭镜像。看见这仅限于4.2或更高版本,并且仅在活动的onCreate()中使用。

这非常聪明,但无法达到完美效果。显然,系统只读取清单文件一次,或者是在安装应用程序时,或者是在第一次运行时。这意味着,如果在手机使用英语时安装应用程序,运行应用程序,然后将手机语言更改为希伯来语,则应用程序将保持从左到右的布局。您必须用希伯来语重新安装手机应用程序,才能将其更改为从右到左的布局。您是否在更改语言后终止了应用程序?我已经做了一个测试版本,它对我非常有效。请看这里:你能把它放在zip文件中吗?我在Windows上,没有安装打开该文件的软件的权限。是的,我杀死了这个应用程序,但在你卸载整个程序之前不会改变。这里(注意:我做了同样的想法,但使用的是阿拉伯语):我想平台的旧版本有问题。我在Kitkat(4.4.2)上试用过,效果非常好。但是在JB(API 18)上没有起作用。注意:我正在更改语言思维设置,而不是自定义区域设置。这很聪明,但并不完美。显然,系统只读取清单文件一次,或者是在安装应用程序时,或者是在第一次运行时。这意味着,如果在手机使用英语时安装应用程序,运行应用程序,然后将手机语言更改为希伯来语,则应用程序将保持从左到右的布局。您必须用希伯来语重新安装手机应用程序,才能将其更改为从右到左的布局。您是否在更改语言后终止了应用程序?我已经做了一个测试版本,它对我非常有效。请看这里:你能把它放在zip文件中吗?我在Windows上,没有安装打开该文件的软件的权限。是的,我杀死了这个应用程序,但在你卸载整个程序之前不会改变。这里(注意:我做了同样的想法,但使用的是阿拉伯语):我想平台的旧版本有问题。我在Kitkat(4.4.2)上试用过,效果非常好。但是在JB(API 18)上没有起作用。注意:我正在更改语言思维设置,而不是自定义区域设置。这正是我所需要的。谢谢。与@xsoh的建议结合使用,我可以添加。这正是我需要的。谢谢。与@xsoh的建议结合使用,我可以添加。