ориентация экрана, унаследованная от активности ребенка - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть базовое действие (распространяется AppCompactActivity), которое распространяется на все действия. У меня вопрос: если я установил android:screenOrientation="portrait" из файла манифеста в базовое действие, почему оно не установлено для всех действий, которые расширяют это действие. Это мой файл манифеста

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".BaseActivity"
        android:screenOrientation="portrait"/>
    <activity android:name=".OtpActivity"></activity>
</application>

Ответы [ 2 ]

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

Примечание: In android:screenOrientation="portrait" - это свойства каждого экрана или действия, которое зарегистрировано в файле манифеста, поэтому, если вы не упомянете это свойство в каждом действии в манифесте, оно будет иметь значение по умолчанию, поэтому мы должны упомяните это свойство для каждого действия, даже если действие расширяется за счет другого действия, в котором упоминается это свойство. Наследование здесь не применяется в AndroidManifest.xml.

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

Если вы хотите установить ориентацию для всех дочерних действий, возможно, лучше использовать код, как показано ниже для базового действия

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

В Манифесте он предназначен для точного создания экземпляра действия, например, если онодля .BaseActivity, тогда только фактический запуск .BaseActivity будет иметь конфигурацию xml.Значение, установленное в xml, не применяется за пределами иерархии наследования кода, но вместо этого при каждом запуске действия должен быть свой тег в manifest.xml.Наследование здесь не применяется в AndroidManifest.xml.

...