2

請首先看到線框圖像http://i.imgur.com/dPAMA.png替換viewpager所顯示片段內的片段

我正在使用ViewPager在FragmentActivity中顯示片段。 ViewPager獲取從所附FragmentPagerAdapter

mViewPager = (ViewPager) findViewById(R.id.view_pager);  
mAdapter = new HomePagerAdapter(getSupportFragmentManager());  
mViewPager.setAdapter(mAdapter); 

假設viewpager具有3個片段來顯示說片段1,Fragment2,Fragment3片段。 在上面的圖片中,「顯示片段1」是第一個片段「片段1」的標題。該片段是一個列表片段並顯示一個列表。 Fragment2和Fragment3都有自己的內容可以顯示。當用戶在屏幕上滑動時,ViewPager將顯示下一個片段「Fragment2」。

我想要的是,當點擊列表中的項目(由Fragment1顯示)時,Fragment1應該完全替換爲其他片段,比如Fragment4(這是不同的片段,不會被連接的適配器返回) 。當顯示Fragment4時,操作欄應該更改其內容。無論何時用戶使用Fragment4和onBackPress或ActionBar中的操作,帶有列表的Fragment1都應該再次顯示。同時,ViewPager應該表現相同,即在滑動時,下一個片段(在我們的例子中爲Fragment2)將被顯示。

基本上,我想要獲得相同的行爲,例如在:

http://developer.android.com/training/basics/fragments/fragment-ui.html#Replace

在這個例子中ListFragment直接顯示FragmentActivity內。我用ViewPager顯示ListFragment。我想從上面的例子中得到相同的功能,但是使用ViewPager顯示片段。在Android 4.2發佈之前,這是非常難以實現的。這個版本的Android支持使用getChildFragmentManager()嵌套的片段,所以我看到了一些希望。

我在這邊試了很多天,並且還掃描了Q &的整個stackoverflow與嵌套片段有關,但沒有得到我想要的。

那麼,這是可能實現的嗎?如果是,那麼如何?

回答

1

這是Android 4.2之前的一個大問題,但現在除了確保後退按鈕有效之外,嵌套片段似乎更容易了。我在這裏發佈了我的解決方案以解決您的問題:https://stackoverflow.com/a/13925130/467509

我的解決方案可以回答您在更改ActionBar時所提出的所有問題。