9

我的问题

我正在使用 aViewPagerFragmentActivity. ViewPager 从附加的FragmentPagerAdapter.

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

假设ViewPager有 3 个片段要显示:Fragment1Fragment2Fragment3Fragment1是一个网格片段并显示一个网格。Fragment2Fragment3有自己的内容来展示。当用户在屏幕上滑动时,ViewPager将显示下一个片段 - Fragment2。等等。

我想要的是?

我想要的是,当单击网格中的一个项目(由 显示Fragment1)时,Fragment1应该完全用其他片段替换,比如说Fragment4(这是不同的片段,不由附加的适配器返回)。用户将Fragment4ButtonBack单击(仅按钮 iside Fragment4)后继续工作,Fragment1应再次显示网格。同时ViewPager应该表现相同,即在滑动时,Fragment2将显示下一个片段(在我们的例子中)。

所以我只想获得与示例相同的行为:http: //developer.android.com/training/basics/fragments/fragment-ui.html#Replace

我的问题

那么,这有可能实现吗?如果是,那么怎么做?非常感谢您的帮助。亚历克斯。PS对不起我的英语:)

4

3 回答 3

17

我做了一个小例子来展示如何实现它:

https://github.com/danilao/fragments-viewpager-example

我认为重点是使用另一个片段作为容器。

于 2014-01-30T10:04:18.363 回答
0

You will have to do the fragment transaction and add the existing fragment into backstack. I created a sample project to show you how to do it.

The code is not fine tuned, I just created it to show you how to do it.

https://drive.google.com/folderview?id=0BxHClVwHSqq5dVRvT1Qyd0hYN0k&usp=sharing

But please be aware that even if you press back at any of the view pager screen, the previous fragment ends up showing as it is the same activity.

IF this is not expected behavior, then you should consider having multiple activities instead ( like tab layout )

于 2014-01-17T18:16:54.063 回答
0

实现此目的的一种方法是添加另一个FragmentActivity显示您的Fragment4. 用于Intent启动此活动并发送网格项目位置或其他数据Extra

按下后退按钮后,此活动将完成,并显示最后一个带有视图寻呼机的活动。

[编辑] 旧的回应。其他答案中提供了更好的解决方案,

于 2014-01-17T18:31:43.463 回答