我正在獲取經典列表內容模式的應用程序,展示了左側菜單選項和中心內容的列表。不同的菜單選項會將內容與顯示新信息的相應片段交換。適當的Android向上導航片段
我正在與實施適當的向上導航掙扎:
|---------------------------------------|
|< Frag. B | B1 B2 B3 |
|----------|----------------------------|
|Fragment A| |
[Fragment B] |
|Fragment C| Fragment B.2 |
|Fragment D| |
|Fragment E| |
|----------|----------------------------|
在上圖中所述用戶已經導航到碎片B.2。他首先從菜單中選擇了F片段B,之後他按下了一個按鈕,使他「進一步進入」片段B,到片段B.2。
如果用戶現在按下按HOME鍵(如在家中一樣)按鈕,他將返回到片段B.這是按照計算的。
然而,片段B.2裏面有ActionBar中的按鈕將用戶帶到片段E.2:
|---------------------------------------|
|< Frag. E | E1 E2 E3 |
|----------|----------------------------|
|Fragment A| |
|Fragment B| |
|Fragment C| Fragment E.2 |
|Fragment D| |
[Fragment E] |
|----------|----------------------------|
當用戶到達這裏的片段E.2,在以前的片段後面的堆棧是碎片B.2。我當前的實現只是在按HOME按鈕時調用getActivity().onBackPressed()
,用戶將簡單地返回到片段B.2。 這對用戶來說沒有意義,所以我想實現一個系統,使用戶現在可以使用Fragment E(即使Fragment B.2是後堆棧中的前一個片段)。
我的直接想法是引用片段,該片段應該像後面堆棧中的前一個片段一樣,在每個片段內部起作用。 片段B.2會參考片段B,片段E.2會參考片段E等。當按下HOME按鈕時 我會啓動被引用爲前一片段的片段。我辯論這個解決方案,但很快意識到這可能會變得很複雜,關於後退堆棧,更不用說它聽起來非常笨拙。
是否有智能的方法來實現這種行爲?
如果他按下當前實現(getActivity()。onBackPressed())的HOME按鈕,那是什麼意思? BackPressed與家庭不同.. – 2013-03-01 17:09:08
感謝您的反饋。我更新了這篇文章,澄清了我的意思..我當前的實現是在主頁按鈕被按下時手動調用onBackPressed()方法,這會導致意外的行爲。 – 2013-03-01 21:41:04