У меня полноэкранный режим без configChanges, установленного в AndroidManifest. xml, поэтому система воссоздает действие при изменении ориентации. Здесь все работает нормально, за исключением того, что периодически изменение ориентации, кажется, заставляет приложение выйти из полноэкранного режима и вернуть системный интерфейс.
У меня есть код для повторного входа в полноэкранный режим, когда это происходит, но я ' Я бы хотел, чтобы он не выходил из полноэкранного режима для начала. Мне интересно, почему это может происходить?
Я также заметил, что это происходит только тогда, когда флаг debuggable
установлен в false в build.gradle для конфигурации сборки (выпуск или отладка)
Activity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// initial fullscreen mode before content loads
enterFullscreenMode()
window.decorView.setOnSystemUiVisibilityChangeListener { visibility ->
if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) {
// not full screen
Handler().postDelayed({
enterFullscreenMode()
}, 800L)
}
}
}
private fun enterFullscreenMode() {
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)
}