2014-02-25 95 views
0

我有一個活動與4片段相關聯。在其中一個片段中,我可以開啓另一個活動。當我從活動返回時(呼叫finish()),會顯示默認片段,而不是最後一個片段。例如:如果我有4個片段與活動A相關聯,則默認顯示片段爲c。從片段a我可以打開其他活動B.我想要的是看到從活動B返回到活動A時看到的最後一個片段。獲取最後一個片段顯示

回答

1

addToBackStack(String)是提供添加片段的功能的方法到backStack,所以當後退按鈕被按下時,碎片將以與它們的添加方式相反的順序顯示。

More Details.

爲了在你的交易情況,當你更換或添加的片段(例如)當你這樣做,

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.replace(your layout, fragment a, tag); 
ft.addToBackStack(null); // this line will remember fragment a 
ft.commit(); 

之後你完成你的活動B.你將能夠看到片段A,如果你按下返回按鈕,你會看到其他片段以相反的順序。

編輯 - 檢查一個片段是否可見。

使用Fragment類的isVisile()方法來查看這是否是當前可見片段。

public final boolean isVisible() 

如果片段當前對用戶可見,則返回true。這意味着:(1)已被添加,(2)將其視圖附加到窗口,(3)未被隱藏。

See here

+0

那麼我怎麼拉最後顯示片段? – vlio20

+0

上述工作是在後退按下時執行的。如果您只是在尋找一種方法來查找可見片段,請參閱我的編輯。 –