Я разрабатываю приложение с многоязычной функцией, оно поддерживает ориентации 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
}
}