在Nougat +设备中旋转景观以反转景观时,语言环境重置为默认设置

时间:2019-01-31 09:36:27

标签: android locale

我正在开发具有多语言功能的应用程序,它支持landscapereverseLandscape方向。它可以在棉花糖设备上正常工作。

但是在Nougat+设备中,当我将方向从横向更改为反向横向时,似乎语言环境会重置为默认位置。此后,所有新创建的ActivityFragmentDialog都具有英语。

BaseActivity

这是我简化的基本活动的样子

abstract class LocaleBaseActivity : AppCompatActivity() {

    public override fun attachBaseContext(newBase: Context) {
        super.attachBaseContext(refreshLocale(newBase, LanguageVO.getInstance().LocalizationCode[0]))
    }

    fun refreshLocale(context: Context, lang: String): Context {
        val locale = Locale(lang.toLowerCase())
        val configuration = context.resources.configuration // getBaseContext().
        configuration.locale = locale
        configuration.setLocale(Locale(lang.toLowerCase()))
        context.resources.updateConfiguration(configuration, context.resources.displayMetrics)
        Locale.setDefault(locale)
        return context
    }
}

0 个答案:

没有答案