当前位置:   article > 正文

Android 7.0以上webView会影响中英文切换_android 切换到英文后 为啥webview加载完成仍然显示为中文

android 切换到英文后 为啥webview加载完成仍然显示为中文

在Android 7.0版本以上,如果项目内添加了WebView会影响中英文切换。表现在我们项目内的现象是,杀死应用后,点击进入应用内的webView界面,然后退出。英文的app会出现中文的字体。之前还以为是项目正式版和测试版的区别。经过百度,发现Android 7.0以上的版本,会出现这样的问题。具体实现的代码如下:

第一步:

再BaseActivity的onCreate方法内再设置一遍当前的语言环境:

//保存的中英文字段
String language = SharedPreferenceManager.getStringValue("language",
        this);
//如果没有保存过,就使用系统的语言
if (TextUtils.isEmpty(language)) {
    if (CommonUtil.getLanguage(this).equals(Locale.CHINA.getLanguage())
            || CommonUtil.getLanguage(this).equals(Locale.CHINESE.getLanguage())) {
        setLocale1(Locale.SIMPLIFIED_CHINESE);
    } else {
        setLocale1(Locale.ENGLISH);
    }
} else {
    if (language.equals("zh")) {

        setLocale1(Locale.SIMPLIFIED_CHINESE);
    } else {
        setLocale1(Locale.ENGLISH);
    }
}

 

/**
 * 设置语言
 * @param locale
 */
public static void setLocale1(Locale locale) {
    Locale.setDefault(locale);
    Context context = TalkApplication.getContext();
    final Resources resources = context.getResources();
    final Configuration config = resources.getConfiguration();
    config.setLocale(locale);
    context.getResources().updateConfiguration(config,
            resources.getDisplayMetrics());
}

第二步:需要在Application的onCreate内调用方法:

//处理Android7(N)webview导致应用内语言失效的问题
private void initWebView() {
    new WebView(this).destroy();
}

这样就可以完美解决了。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读