簡體   English   中英

如何處理活動方向更改以不重新創建活動?

[英]How to handle activity orientation change to dont recreate the activity?

我使用startActivityForResult()啟動活動,但是在更改方向后,我返回到onActivityResult()方法,requestCode不相同。 如果屏幕方向為橫向模式,我想使用其他布局。 我在清單中嘗試了帶有direction和screenSize參數的配置,但是如果使用此配置,則布局不會更改為橫向布局。 我從requestCode = 0開始活動,但是在方向改變后,我看到requestCode = 66357之類的東西。

創建兩種類型的布局文件夾。 “布局土地”和“布局端口”。 將所需的xml放在同一個目錄中。

您可以聲明您的活動自行處理配置更改,從而阻止系統重新啟動您的活動。

在您的AndriodMainfest.xml中定義configChanges

<activity android:name=".ResultActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">

然后在您的ResultActivity.java(您為了獲取結果而調用)中定義onConfigurationChanged()

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

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
}

官方鏈接

您有兩種選擇:

A)將您的應用設置為不旋轉。

B)或接受世界還不完美的想法,並修改您的應用以處理配置更改

暫無
暫無

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

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