mainActivity искажается, если на Android изначально установлена ​​горизонтальная ориентация - PullRequest
1 голос
/ 21 декабря 2011

Я работаю над приложением, в котором все действия установлены на:

   android:screenOrientation="portrait" 

Вот что происходит:

Планшет находится в портретном режиме ДО запуска приложения:

  • startScreen создается в портретном режиме
  • один переходит на другой портретный экран
  • один возвращается к startScreen - он создается в портретном режиме - все в порядке

И вот что происходит, когда планшет находится в ландшафтном режиме при запуске приложения:

  • startScreen создается в портретном режиме
  • один переходит на другой портретный экран
  • один возвращается к startScreen - он создается в режиме LANDSCAPE только для немедленного закрытия в течение доли секунды и действие искажается - затем, наконец, действие создаетсяв режиме porttrait

Как можно избежать этого создания в режиме LANDSCAPE за доли секунды и сразу создать только в портретном режиме?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Добавьте в свой манифест тег активности: android: configChanges = "direction".Теперь он не будет перезагружаться в ориентации.

Это только теория, но если вы сначала видите свой экран в ландшафтном режиме, вы, возможно, можете переопределить свой корневой вид и переопределить метод onDraw.Проверьте ширину и высоту холста.Если высота больше, чем ширина, не рисуйте и не устанавливайте видимость false.Пока вы не получите «правильный» холст для рисования.

Это может быть излишним, но я думаю, что это может быть сделано.

Также ищите больше возможных вещей, которые могут изменить ориентацию экрана здесь:http://developer.android.com/guide/topics/manifest/activity-element.html#screen

Есть еще один из API 14 и выше (я думаю), который вызвал у меня много проблем, это "ScreenSize".

0 голосов
/ 21 декабря 2011

Создайте свою деятельность в портретном режиме и перейдите в ландшафтный режим методом onResume.

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