Android дочерняя активность и блокировка ориентации - PullRequest
2 голосов
/ 05 октября 2011

Я провел довольно много поисков и проб / ошибок, пытаясь исправить свое приложение в портретном режиме, однако я в тупике.

Фон: это приложение имеет основное действие, которое показывает статические изображения с различными эффектами перехода. Для отображения MediaPlayer используется вспомогательное действие, поскольку SurfaceView (необходимый для отображения фрагмента ролика) ограничивает производительность отображения переходов неподвижных изображений.

Оба действия заблокированы в портретном режиме, и в большинстве случаев это работает довольно хорошо. Моя проблема в том, что когда дочерняя активность заканчивается, и у меня физически устройство находится в горизонтальном положении, оно временно переключается в ландшафтный режим, а затем обратно в портретный режим. При этом я вижу стрелки на экране и т. Д., И я не хочу этого.

Вот дамп из logcat:

D / курсор (1357): курсор_ротация 0
I / WindowManagerService (1357): установка поворота на 0, animFlags = 1
I / ActivityManager (1357): конфигурация изменена: {масштаб = 1,0 imsi = 0/0 loc = en_US touch = 3 клавиши = 1/1/2 nav = 1/1 ориентация = 2 макета = 35 uiMode = 17 seq = 1726}
D / main_activity (6851): onActivityResult: 0
D / child_activity (6851): поверхность разрушена, вызвана
D / курсор (1357): курсор_ротация 3
I / WindowManagerService (1357): установка поворота на 3, animFlags = 1
I / ActivityManager (1357): конфигурация изменена: {масштаб = 1,0 imsi = 0/0 loc = en_US touch = 3 клавиши = 1/1/2 nav = 1/1 ориентация = 1 макет = 35 uiMode = 17 seq = 1727}
D / StatusBarPolicy (1357): ro.wmt.ui.portrait.hide.capbtn = 1
D / StatusBarPolicy (1357): wm.getRotation = 3
D / StatusBarPolicy (1357): ro.wmt.ui.portrait.hide.capbtn = 1
D / StatusBarPolicy (1357): wm.getRotation = 3

Единственные две строки, которые я хочу увидеть, выделены жирным шрифтом, все остальное, что я хочу исключить. Иногда переключение происходит незаметно в зависимости от времени, поэтому я предполагаю, что есть какое-то состояние гонки?

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Вы можете установить это в манифесте Android, так же, как это ответ предложил:

<activity 
    android:name=".MyActivity" 
    android:screenOrientation="portrait"
    android:configChanges="orientation|keyboardHidden|keyboard"/>`
0 голосов
/ 05 октября 2011

Вы можете отключить изменения ориентации в своей деятельности.Я задал похожий вопрос здесь .

Вы можете позвонить:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

, чтобы отключить изменение ориентации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...