Свойство screenOrientation манифеста и setRequestedOrientation - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь понять разницу между настройкой screenOrientation в моем файле манифеста следующим образом

<activity android:name='.MainActivity' screenOrientation='portrait'/>

и выполнением этого во время onCreate части жизненного цикла, подобной этой

`setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);`

Насколько я понимаю, первый метод создаст действия в портретном режиме независимо от ориентации телефона в момент создания (это означает, что действие будет создаваться в портретном режиме, даже если вы держите телефон в альбомной ориентации), а второйодин из них создаст действие в конфигурации, заданной ориентацией телефона, а затем изменится (поэтому, если вы удерживаете телефон в горизонтальном положении и создаете занятие, вы увидите занятие, созданное в альбомной ориентации, а затем перенастроитесь в портретный режим).,

Я прав?Если нет, может кто-нибудь объяснить мне, в чем именно заключаются различия?

1 Ответ

0 голосов
/ 07 декабря 2018

То, что вы устанавливаете в манифесте, является своего рода начальным значением, которым можно манипулировать с помощью метода setRequestedOrientation ().

Вы можете проверить написанное, реализовав очень простое приложение.

В основном вы получите тот же результат.Разница в том, что ориентация, определенная в манифесте, вступает в силу с самого начала, создания действия.

Принимая во внимание, что вы можете вызвать метод setRequestedOrientation (), чтобы установить его программно в зависимости от условий или событий.Например, вы можете изменить ориентацию с портретной на ландшафтную при нажатии кнопки, используя метод setRequestedOrientation ().Или сделайте датчик зависимым, передав аргумент ActivityInfo.SCREEN_ORIENTATION_SENSOR.

...