下面是我更改区域设置的方法
public static boolean setDefaultLocale(Context context) { Resources resources = context.getResources(); PreferenceManager preferenceManager = PreferenceManager.getInstance(); String localLanguage = resources.getConfiguration().locale.getLanguage(); boolean isLanguageChanged = !preferenceManager.getCurrentLanguageCode().equalsIgnoreCase(localLanguage); if (isLanguageChanged) { Log.d("",preferenceManager.getCurrentLanguageCode()); Locale locale = new Locale(preferenceManager.getCurrentLanguageCode()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) Locale.setDefault(Locale.category.disPLAY,locale); else Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; resources.updateConfiguration(config,resources.getdisplayMetrics()); ((Activity) context).recreate(); } return isLanguageChanged;}解决方法 在onCreate函数中进行简单修复即可添加以下代码:
if (Locale.getDefault().getLanguage()=="ar") getwindow().getDecorVIEw().setLayoutDirection(VIEw.LAYOUT_DIRECTION_RTL);else getwindow().getDecorVIEw().setLayoutDirection(VIEw.LAYOUT_DIRECTION_LTR);总结
以上是内存溢出为你收集整理的android Oreo中的RTL布局错误全部内容,希望文章能够帮你解决android Oreo中的RTL布局错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)