RTL无法正常运行

时间:2018-07-02 15:21:49

标签: android right-to-left

我目前正在开发一个需要支持英语和阿拉伯语的Android应用,我正在使用此代码从一种语言切换到另一种语言。

String languageToLoad; // your language
    if (languageSwitch.isChecked()) {
        languageToLoad = "ar";//arabic
    } else {
        languageToLoad = "en";//english
    }

    Locale locale = new Locale(languageToLoad);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;

    // store it in the cache for any further use
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());
    SharedPreferencesUtil.putString(this, "language", languageToLoad);

工作正常,我已经制作了2个版面设计文件夹,一个普通的文件夹和一个layout-ar。它可以正常工作,但有时会变得混乱,而不是显示阿拉伯语,而是显示英语布局,并且该应用程序仅在英语模式下继续运行。

2 个答案:

答案 0 :(得分:1)

最后,您应该重新开始活动。试试这个。

 public void updateActivity() {
        Intent intent = new Intent(getActivity(), MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
    }

答案 1 :(得分:0)

事实证明,Webview是导致此问题的原因,一旦生成Webview,它将删除所有覆盖的本地数据并从设备中插入一个,以纠正问题,您需要按照发现的步骤进行操作在此link中。