我有一个Base活动(扩展AppCompactActivity
),它被所有活动扩展。我的问题是,如果我将android:screenOrientation="portrait"
从Manifest文件设置为基本活动,为什么不将其设置为扩展此活动的所有活动。这是我的清单文件
<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>
如果要为所有子活动设置方向,可能最好在基本活动上使用如下代码
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在Manifest中,它的目标是实例化的确切活动,例如:如果它是.BaseActivity,那么只有实际的.BaseActivity启动才会有它的xml配置。 xml中设置的值不适用于代码继承层次结构,而是每个活动启动都需要在manifest.xml中拥有它自己的标记。继承不适用于AndroidManifest.xml。
注意:在android:screenOrientation="portrait"
中是清单文件中注册的每个屏幕或活动的属性,因此如果您不在清单中的每个活动中提及此属性,那么它将采用默认值,因此我们必须为每个活动提及此属性,即使活动由提及此属性的其他活动扩展继承不适用于AndroidManifest.xml。