2014-10-04 54 views
0

我之前在getChildFragmentManager() and viewpager之前問這個問題沒有任何迴應,可能是因爲解釋太長了。Viewpager裏面的片段和後退按鈕

簡單地說,我有一個viewpager裏面的一個片段。該viewpager內的頁面需要通過一系列屏幕進行替換。按下這些屏幕將不會退出應用程序。我該怎麼做呢?

挑戰:

  1. viewpager XML不使用的FrameLayout。當我使用替換方法時,我使用什麼容器 ID?

  2. 當替換片段時,爲什麼每次都使用getChildFragmentManager(如果它對於當前片段是私有的)?

@goonedroid:我不是在這裏尋找的。唯一的相似之處是片段有一個viewpager。點擊後,我的viewpager的頁面需要被替換:

我有一個導航器。點擊項目2顯示FragmentA。點擊FragmentA將其替換爲FragmentB。點擊FragmentB將其替換爲FragmentC。點擊FragmentC會將您帶回FragmentB。片段被添加到後臺以便正確的後退導航。

點擊navdrawer中的項目1,顯示帶有viewpager的FragmentZ。視圖頁面只是FragmentA和所有上述行爲。但是從A到B在這裏,然後按回顯示viewpager中沒有頁面。

+0

要更換內部Viewpager片段,你應該使用viewpager的setCurrentItem()方法。 – jimmy0251 2014-10-04 06:26:21

+0

setCurrentItem僅設置viewpager的當前頁面。我點擊viewpager中的一個頁面,並想要一個新的片段來替換它。當我點擊後,它應該帶我到viewpager中的原始頁面。 – 2014-10-04 06:49:47

+0

使用此答案http://stackoverflow.com/questions/18588944/replace-one-fragment-with-another-in-viewpager – goonerDroid 2014-10-04 06:57:30

回答

0

我終於想出了一個解決方案,不知道爲什麼這會起作用,因爲我認爲Activity的getSupportFragmentManager()返回與片段的getFragmentManager()相同的片段管理器。

不管怎麼說,而不是getFragmentManager()的片段,用getActivity()。getFragmentManager()