我正在开发两种语言的应用程序:英语和阿拉伯语。为此,我在应用程序中有一个按钮可以通过编程方式更改语言。我可以通过单击一个按钮来更改它,但是当我将其英语更改为阿拉伯语时,我的用户界面也从左到右更改,但是我希望两个用户界面都保持相同。我该怎么做? 我正在使用这种方法更改语言 私有静态上下文updateResourcesLegacy(上下文上下文,字符串语言){
Locale locale = new Locale(language);
Locale.setDefault(locale);
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
return context;
}
它有效,但是ui反映了。
答案 0 :(得分:2)
尝试在android:supportsRtl="false"
标签内的{strong> manifest.xml 文件中添加<application>
。这样可以解决UI方向问题,但可能会不利地影响您的文本方向,因为阿拉伯语必须从右向左进行操作。
另一种解决方案是在活动中添加android:layoutDirection="ltr"
。
答案 1 :(得分:1)
所以您不希望在应用程序中支持RTL?在清单中尝试android:supportsRtl =“ false”。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="false"
android:theme="@style/AppTheme">
...
</application>