簡體   English   中英

防止在方向更改時重新啟動活動

[英]prevent activity restarting when orientation changes

我是Android開發的新手。我有縱向和橫向模式的單獨屏幕。當我改變我的方向時,相應的屏幕被加載並且活動重新開始。 現在我不希望我的活動在我改變方向時重新啟動,但是應該加載相應的屏幕(axml)。

我試過了

[Activity(Label =“MyActivity”,ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation)]

上面的行停止活動重新啟動但它加載相同的屏幕(axml)。 請建議。 謝謝

在您的活動中寫下此代碼

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setContentView(R.layout.landscapeView);

    } else {
        setContentView(R.layout.portraitView);
    }
}

並在您的清單文件中添加此行

android:configChanges="orientation|keyboardHidden|screenSize"

因此,這將處理這兩件事,它不會重新啟動您的活動,並將根據您的方向更改加載布局。

由於您已經為操作系統指定了您想要自己處理方向更改,現在您必須自己處理對布局的任何更改,如下所示:

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig); 

    if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        setContentView(R.layout.portrait);
        //do other initialization
    } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setContentView(R.layout.landscape);
        //do other initialization
    }
}

暫無
暫無

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

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