conf.setLocale()的行为不一致

时间:2016-03-04 13:18:38

标签: android locale

根据给定的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更改布局方向。但它的行为并不一致。布局方向经常被系统覆盖。这应该是什么解决方法?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

使用应用程序context获取资源似乎导致了这种不一致的行为。使用活动中的getResources()可以解决问题。