Стартовый макет Android с текущей ориентацией, после этого отключите вращение
-
29-10-2019 - |
Вопрос
Я хочу сделать возможным использование действия в альбомной / портретной ориентации. Действие начинается с макета для текущей ориентации (то есть до начала действия). После этого он должен его придерживаться и не реагировать на изменение ориентации.
Я пробовал ставить
родовое словов манифесте действия и переопределение
родовое словоничего не делать (тоже пробовал комментировать супервызов, но это привело к исключению) но это не приводит к отключению изменения поворота - изменение обрабатывается и макет реконструируется, просто он не использует правильный.
И я не могу использовать
родовое словоПотому что мне кажется, что я всегда должен указывать только один режим, и это тоже не то, что мне нужно. И в любом случае, если я что-то там укажу, активность восстанавливается при повороте. Пробовал с
родовое словоничего не делает
Здесь есть блокировка текущей ориентации с кодом http://www.samcoles.co.uk/ мобильный / Android-блокировка-и-разблокировка-экран-ориентация /
Но при этом достигается тот же эффект, что и при указании ориентации в XML (сохраняется макет, но реконструируется действие). Это немного ближе к тому, что я хочу (сохраняет ориентацию с самого начала), но реконструирует действие, и я не хочу, чтобы он вообще реагировал.
Решение
android: configChanges="direction" вообще не работает в эмуляторе, но отлично работает на устройствах.
Другие советы
Попробовать
родовое словоДобавить это к OnCreate
if (this.getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}
else {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}
.