活动方向继承自父级

时间:2015-09-03 22:25:24

标签: android android-activity orientation

我有一个包含2个活动的Android应用程序(实际上更多,但这并不重要)。

第一个具有固定方向(landsape),第二个具有默认(未定义)方向。第一个活动充当启动画面,然后自动启动第二个活动。

问题是第二个活动从第一个活动继承了横向方向,即当第二个活动出现时设备方向是垂直的,它有横向方向,然后立即旋转到垂直方向。

如果我删除第一个活动,以便在启动期间出现第二个活动,则不会发生。

注意我既不能为第一个活动设置垂直方向,也不能设置未定义的方向,并因某种原因进行相应的绘制。

请帮忙。

<activity android:name="SplashActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:configChanges="screenSize" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="GameActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:configChanges="orientation|screenSize" android:screenOrientation="fullSensor"> </activity>

我还尝试使用'undefined'或不为GameActivity设置任何方向。

1 个答案:

答案 0 :(得分:1)

我希望我做对了。所以你想要的是,第二个Activity没有得到第一个的旋转。

在第二个onCreate()中的Activity方法中使用以下内容:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

如果它仍然无效,那么这只是Android的行为。 如果它有所帮助,那就很好。

<强>

第一个<{strong> Intent中的Activity 后,应如下所示:

Intent intent = new Intent(SplashActivity.this, GameActivity.class);
startActivity(spcthxopen);

你刚才放

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

Intent下。我只是尝试了它,它完美地解决了Android的默认行为。