[英]android force lauch activity in landscape mode
我正在嘗試以橫向模式啟動 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>
有沒有辦法強制將活動直接啟動到橫向模式?
嘗試覆蓋onConfigurationChanged
方法。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
您需要這兩個部件來保證性能。
在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>
那應該工作!
下面的例子有效:
@Override
protected void onCreate(Bundle savedInstanceState) {
Me = this;
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
在AndroidManifest.xml
,在<activity>
您想以橫向模式強制啟動,添加android:screenOrientation="locked"
。
在要以橫向模式強制啟動的Activity
onCreate
中,添加requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE
解釋:
Activity
會獲取您設備的當前方向,如果您的設備是縱向的,則 Activity 是縱向的。 如果您的設備是橫向的,則 Activity 是橫向的。 所以,你需要先鎖定方向。onStart
、 onResume
設置方向,但是如果您只需要設置一次方向,那么只需在onCreate
設置即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.