赞
踩
在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(); }
这样就可以完美解决了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。