簡體   English   中英

android在橫向模式下強制啟動活動

[英]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);
}
  1. AndroidManifest.xml ,在<activity>您想以橫向模式強制啟動,添加android:screenOrientation="locked"

  2. 在要以橫向模式強制啟動的Activity onCreate中,添加requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE

解釋:

  • 當您啟動一個 Activity 時,默認情況下Activity會獲取您設備的當前方向,如果您的設備是縱向的,則 Activity 是縱向的。 如果您的設備是橫向的,則 Activity 是橫向的。 所以,你需要先鎖定方向。
  • 然后你需要在Activity的onCreate中設置方向,如果你不這樣做,應用程序將崩潰。
  • 您還可以在onStartonResume設置方向,但是如果您只需要設置一次方向,那么只需在onCreate設置即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM