языковой стандарт сбрасывается к значению по умолчанию при повороте ландшафта для изменения ландшафта в устройствах Nougat + - PullRequest
0 голосов
/ 31 января 2019

Я разрабатываю приложение с многоязычной функцией, оно поддерживает ориентации landscape и reverseLandscape.Он отлично работает до устройств Marshmallow.

Но на устройствах Nougat+, когда я меняю ориентацию с альбомной на реверсную, кажется, что языковой стандарт сбрасывается до значения по умолчанию.После этого все вновь создаваемые Activity, Fragment, Dialog с английским языком.

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
    }
}
...