Intereting Posts
Как обрабатывать доступность в пользовательском представлении, когда он не предназначен для обработки кликов? Котлин показал несоответствие типов в фрагменте Какое правильное место для запуска службы в архитектуре MVVM Android Android Kotlin рассчитывает темп (время) Kotlin: Java не может разрешить символ Котлина? Как позволить классу данных реализовать интерфейс / расширяет свойства суперкласса в Котлине? Поддерживает ли Котлин монадическое понимание? Как использовать настраиваемые типы для параметров Retrofit @Query? kotlin unreachable code при использовании finally и enum Сравнение сетевых библиотек Android: OkHTTP, Retrofit и Volley Самый простой способ получить возможность hotswap при использовании транспилера kotlin-to-js? используя компиляцию "org.jetbrains.kotlin: kotlin-stdlib-jre7: $ kotlin_version" дать ошибку Включить ведение журнала в операторе Элвиса? Kotlin IllegalAccessError с + = и – = для делегированного интерфейса Можно ли указать статическую функцию в интерфейсе Kotlin?

Почему не вызывается onConfigurationChanged?

Я пишу код, который меняет текст TextView при изменении ориентации. Я использую onConfigurationChanged () прослушиватель для изменения текста

override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) val orientation : Int = getResources().getConfiguration().orientation val oTag = "Orientation Change" if(orientation == (Configuration.ORIENTATION_LANDSCAPE)){ mytext?.setText("Changed to Landscape") Log.i(oTag, "Orientation Changed to Landscape") }else if (orientation == (Configuration.ORIENTATION_PORTRAIT)){ mytext?.setText("Changed to Portratit") Log.i(oTag, "Orientation Changed to Portratit") }else{ Log.i(oTag, "Nothing is coming!!") } } 

но ничего не происходит даже в журнале

также я добавил этот атрибут в свою активность в файле манифеста

 android:configChanges="orientation" 

Что мне здесь не хватает? также есть ли другой способ достичь этого?

Используйте этот код, чтобы получить конфиденцию

 override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) if (newConfig != null) { if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); } } } 

Несколько вещей, чтобы попробовать:

android:configChanges="orientation|keyboardHidden|screenSize" а не android:configChanges="orientation"

Убедитесь, что вы не вызываете setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); в любом месте. Это приведет к тому, что onConfigurationChange () не будет срабатывать.