我正在尝试以横向模式启动MyActivity。问题是它目前正以纵向模式启动,然后进入横向模式。
我在AndroidManifest.xml中定义了MyActivity,如下所示:
<activity
android:name="com.myproject.MyActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTop"
android:screenOrientation="landscape"
android:taskAffinity="com.myproject"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
有没有办法强制将活动直接启动到横向模式?
答案 0 :(得分:3)
尝试覆盖onConfigurationChanged
方法。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
答案 1 :(得分:1)
您需要两个部件来保证性能。
在MainActivity.java
中,输入以下内容:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
然后在AndroidManifest.xml
中,包含以下内容以防止配置更改:
<activity
android:name="com.myproject.MyActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这应该有用!
答案 2 :(得分:0)
以下示例有效:
@Override
protected void onCreate(Bundle savedInstanceState) {
Me = this;
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
答案 3 :(得分:0)
在AndroidManifest.xml
的{{1}}中,要强制以横向模式启动,请添加<activity>
。
在要强制以横向模式启动的android:screenOrientation="locked"
的{{1}}中,添加onCreate
说明:
Activity
将获取设备的当前方向,如果您的设备是纵向模式,则“活动”是纵向模式。如果您的设备是横向的,那么活动就是横向的。因此,您需要先锁定方向。requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE
,Activity
中设置方向,但是如果只需要设置一次方向,则只需在onStart
上设置即可。