簡體   English   中英

使用片段改變方向 - 錯誤的活動開始

[英]Orientation change using fragments - wrong activity start

我有使用片段的應用程序。 根據屏幕尺寸和方向,我顯示不同的布局:
1. layout-fragment - 選項列表
2. layout-fragment - 顯示選擇的選項
我在處理大屏幕中的方向變化時遇到問題。 在縱向模式下,我在一個布局中顯示兩個片段,但在橫向模式下,如果用戶選擇顯示某事,我只顯示第二個片段活動。 當在此 state 方向更改回縱向模式時,我想再次顯示兩個片段,但我再次顯示第二個布局片段活動。
我知道它是 android 活動管理,但是讓它像我想要的那樣工作的最佳方法是什么(始終以縱向模式顯示 1 和 2 片段)?

感謝您的任何建議!

這是因為您的第二個活動(僅顯示一個片段)是在方向更改時重新創建的。

您可以在這里做的是檢查 onCreate 中的方向,如果縱向 - 以合適的意圖啟動 Activity_1,以便它可以啟動第二個片段以獲取正確的詳細信息。 當然,您還必須編輯 Activity_1 以在 onCreate.. 中檢查此意圖。

一些示例代碼,其中意圖具有操作 ACTION_VIEW 和 uri 的詳細信息 object。

Activity_2(一個片段 - 只能用於橫向)

// in method onCreate
// assume orientation is checked and boolean set
if (isPortraitOrientation) {
   startActivity(suitableIntent); // ACTION_VIEW with uri
   finish();
   return;
} else {
   // load fragment
}

Activity_1(如果方向允許,則顯示兩個片段

// check intent
// assume orientation checked and boolean set  
final Intent intent = getIntent();
final String action = intent.getAction();
Log.v(TAG, " - action: " + action);
if (isPortraitOrientation && Intent.ACTION_VIEW.equals(action)) {
   // load fragment with selected choice
}

推薦的方向檢查: 在 Android 手機上檢查方向

暫無
暫無

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

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