我有一个基本活动(扩展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>
答案 0 :(得分:4)
如果您想为所有子活动设置方向,也许最好在基本活动中使用以下代码
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在清单中,它以实例化的确切活动为目标,例如如果它用于.BaseActivity,则只有实际的.BaseActivity启动才具有它的xml配置。 xml中设置的值不适用于代码继承层次结构,但是每次活动启动都需要在manifest.xml中拥有自己的标签。继承不适用于AndroidManifest.xml。
答案 1 :(得分:1)
注意:android:screenOrientation="portrait"
中的每个屏幕或活动的属性都已在清单文件中注册,因此,如果您未在清单中的每个活动中都提及此属性,则它将采用默认值,因此我们必须为每个活动都提及该属性,即使该活动被提及该属性的其他活动所扩展,继承也不在AndroidManifest.xml中适用。