У меня есть активность, которая всегда должна запускаться в ландшафтном режиме. В моем методе onCreate()
я использую размеры экрана (ширина и высота) для настройки интерфейса, поэтому важно, чтобы изначально не было создано действие с неправильной ориентацией.Формирование ландшафтного режима на планшете
Чтобы сделать это, я следующий в манифесте:
<activity android:name="app.myapp.WideActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"/>
Это, кажется, работает вполне нормально на моем телефоне, но на моем планшете (Galaxy Tab, Samsung, Android 3.1) деятельность запускается в портретный режим и ориентация переключателей почти сразу (после метода onCreate()
- кажется). На моем телефоне (Android 2.3) экран уже является ландшафтом до вызова метода onCreate().
Ввод setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
в метод onCreate(), похоже, не помогает. Как я могу достичь того, что я пытаюсь сделать?
Спасибо за ответ. Это похоже на странное поведение, похоже, правильно, но не пейзаж. Я думаю, что для моего приложения я могу просто проверить ориентацию и поменять значения высоты и ширины, если это необходимо. Это делает отображение активности корректным. –
На самом деле, теперь я думаю об этом, если мне нужно удалить ориентацию 'configChanges =", метод onCreate() будет вызываться снова, когда устройство переключит ориентацию, и пользовательский интерфейс исправит себя. Также можно добавить проверку в метод onCreate и не рисовать пользовательский интерфейс вообще в портретном режиме –