Android fragments 替换viewpager显示的片段中的片段

Android fragments 替换viewpager显示的片段中的片段,android-fragments,android-actionbar,android-viewpager,android-listfragment,android-fragmentactivity,Android Fragments,Android Actionbar,Android Viewpager,Android Listfragment,Android Fragmentactivity,请先看线框图像 我正在使用ViewPager显示FragmentActivity中的片段。ViewPager从附加的FragmentPagerAdapter获取片段 mViewPager = (ViewPager) findViewById(R.id.view_pager); mAdapter = new HomePagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(mAdapter); 假设vi

请先看线框图像

我正在使用ViewPager显示FragmentActivity中的片段。ViewPager从附加的FragmentPagerAdapter获取片段

mViewPager = (ViewPager) findViewById(R.id.view_pager);       
mAdapter = new HomePagerAdapter(getSupportFragmentManager());    
mViewPager.setAdapter(mAdapter);
假设viewpager有3个片段要显示,比如Fragment1、Fragment2、Fragment3。 在上图中,“显示片段1”是第一个片段的标题,“片段1”。此片段是一个列表片段,显示一个列表。Fragment2和Fragment3有自己的内容要显示。当用户在屏幕上滑动时,ViewPager将显示下一个片段“Fragment2”

我想要的是,当单击列表中的项目(由Fragment1显示)时,Fragment1应该完全替换为其他片段,比如Fragment4(这是不同的片段,连接的适配器不会返回)。显示Fragment4时,actionbar应更改其内容。每当用户处理Fragment4和onBackPress或ActionBar中的操作时,带有列表的Fragment1应该再次显示。同时,ViewPager的行为应该是相同的,即在滑动时,将显示下一个片段(在我们的例子中是Fragment2)

基本上,我希望得到与示例中相同的行为:

在本例中,ListFragment直接显示在FragmentActivity中。我正在用ViewPager显示ListFragment。我想从上面的示例中获得相同的功能,但在ViewPager显示的片段中。这在Android 4.2发布之前是很难实现的。这个版本的android支持使用
getChildFragmentManager()
嵌套片段,因此,我看到了一些希望

我在我这边尝试了很多天,也扫描了整个stackoverflow,寻找与嵌套片段相关的Q&A,但没有得到我想要的


那么,这有可能实现吗?如果是的话,那怎么办

在Android 4.2之前,这是一个大问题,但现在使用嵌套片段似乎更容易了,除了确保“后退”按钮工作之外。我在这里发布了我对您问题的解决方案:

除了更改ActionBar,我的解决方案回答了您提出的所有问题