У меня есть приложение Android, которое уже обрабатывает изменения для ориентации, т.е. в манифесте android:configChanges="orientation"
и обработчик onConfigurationChange()
в действии, который переключается на соответствующий макет и создает его. У меня есть альбомная/портретная версия макета.
Проблема, с которой я сталкиваюсь, заключается в том, что у операции есть диалог, который может быть открыт, когда пользователь поворачивает ориентацию устройства. У меня также есть альбомная/портретная версия диалога.
Должен ли я идти об изменении макета диалога "на лету" или, возможно, блокировать поворот активности, пока пользователь не отклонит диалог.
Последний вариант блокировки приложения обращается ко мне, поскольку он сохраняет необходимость делать что-либо особенное в диалоговом окне. Я предполагаю, что я могу отключить ориентацию при открытии диалога, например
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
а затем, когда он отклоняет
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Будет ли это разумным делом? Если ориентация экрана изменилась, когда она была заблокирована, будет ли она сразу ощущать изменение ориентации, когда оно было разблокировано?
Существуют ли альтернативы?