что произойдет, если добавить screenOrientation =behind в элемент запуска Activity

#android #android-layout

#Android #android-layout

Вопрос:

что произойдет, если добавить screenOrientation =behind в элемент запуска Activity

    <activity
            android:name=".ui.activity.SplashActivity"
            android:screenOrientation="behind"
            android:configChanges="screenSize|orientation|keyboard"
            android:noHistory="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
  

Я хочу знать, что произойдет, если я напишу это, и хочу знать подробности.

Ответ №1:

Если вы настроили всю активность вашего проекта в той же screenOrientation. вы можете запустить свое приложение с помощью действия на экране-заставке, установить ориентацию, как в вашем текущем коде, и перейти к вашей CoreActivity или любой другой активности в вашем приложении.

В вашем AndroidManifest.xml наборе

 <activity
    android:name=".CoreActivity"
    android:screenOrientation="behind"/>
  

При этом будет использоваться та же ориентация, что и у действия, которое находится непосредственно под ним в стеке действий.

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

Комментарии:

1. но активность lauch не имеет ориентации, если я добавлю screenOrientation =behind в lauch-activity, какова ее ориентация?

2. Если включен автоматический поворот, то activity игнорирует атрибут «behind» и вращается вместе с экраном телефона.

3. Автоматическое вращение в системных настройках отключено (или включено — это не имеет значения, опция «behind» в любом случае игнорируется). android: screenOrientation=»landscape» установлен для MainActivity, а android: screenOrientation=»behind» установлен для SecondActivity, что означает, что SecondActivity также должен быть запущен в альбомной ориентации.