Экран все еще может вращаться, даже если ориентация установлена ​​на Портрет - PullRequest
0 голосов
/ 10 сентября 2018

Я знаю, что плитка кажется очень запутанной, но да, это случилось с моим приложением.Хорошо, вот история.

Вот ключевые настройки в манифесте:

android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

В моем файле Activity.java я также переопределяю onConfigurationChanged(Configuration config), который будет распечатывать текущую ориентацию.

Вот самая интересная часть.Я запускаю вращаемое приложение, скажем «Галерея» (предположим, оно может вращаться), из моего приложения в альбомной ориентации с использованием Intent.Держите телефон в горизонтальном положении и нажмите клавишу возврата.Вновь запущенное действие, в данном случае Галерея, закроется, и мое приложение перезапустится.Теоретически мое приложение должно отображаться в портретной ориентации, поскольку я установил screenOrientation в портретную ориентацию.Однако на самом деле мое приложение просто остается в портретном режиме в течение 1 секунды, а затем переходит в альбомную ориентацию и снова переходит в портретную ориентацию.

Я запускаю поток, чтобы распечатать requestedOrientation моего приложения после вызова onRestart.И я выясняю, что на выходе всегда «1», то есть «портрет».Тем не менее, вывод onConfigurationChanged дает мне текущую ориентацию ландшафта!

Итак, я в полном замешательстве.Как это может случиться?Может кто-нибудь дать мне совет?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Может быть, вы используете ориентацию экрана в упражнении. Но другой вид деятельности будет вращаться. в приведенном ниже примере ориентация ActivityA не изменится, но ActivityB будет вращаться. Если вы напишите android: screenOrientation = "Portrait" в теге приложения и ничего не упомяните в активности. Это ничего не работает. Поэтому, пожалуйста, упомяните screenOrientation в действии.

<activity
   android:name=".ActivityA"
   android:screenOrientation="portrait">
</activity>
<activity
   android:name=".ActivityB">
</activity>
0 голосов
/ 10 сентября 2018

вы используете android:screenOrientation="portrait" android:configChanges="orientation|screenSize|keyboardHidden"

внутри вашего приложения или под действием

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