根据给定的solution,我使用以下代码以编程方式更改语言:
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
if (Build.VERSION.SDK_INT >= 17) {
conf.setLocale(newLocale);
} else {
conf.locale = newLocale;
}
res.updateConfiguration(conf, dm);
我在onCreate()
之前和setContentView()
之后的每个活动中都在super.Oncreate()
中调用此内容。
conf.setLocale()
在内部调用setLayoutDirection()
,并且应该根据指定的locale
更改布局方向。但它的行为并不一致。布局方向经常被系统覆盖。这应该是什么解决方法?
非常感谢任何帮助。
答案 0 :(得分:0)
使用应用程序context
获取资源似乎导致了这种不一致的行为。使用活动中的getResources()
可以解决问题。