Ami*_*hai 56 android android-fragments android-viewpager fragmentpageradapter back-stack
我有一个片段(我会称之为pagerFragment),它被添加到后台并且可见.它拥有viewPager一个FragmentPagerAdapter.在FragmentPagerAdapter持有(假设)两个片段:A和B.
首先添加片段效果很好.
片段A有一个按钮,一旦点击,就会在后台堆叠中添加一个片段(C).
问题是:如果我添加该片段(C),然后单击返回,pagerAdapter则为空,我看不到里面的任何片段.
如果我使用hack,并破坏pagerFragments中的子片段(A和B)onDestroyView(),这解决了问题,虽然我不想使用这个hack.
任何想法可能是什么问题?
Mik*_*rer 89
我有同样的问题.对我来说解决方案很简单:
在onCreateView我有:
// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity()
.getSupportFragmentManager());
Run Code Online (Sandbox Code Playgroud)
其中SectionPageAdapter是这样的:
class SectionsPagerAdapter extends FragmentPagerAdapter {
...
}
Run Code Online (Sandbox Code Playgroud)
将getSupportFragmentManager更改为
mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());
Run Code Online (Sandbox Code Playgroud)
它开始工作了!希望这可以帮助.
Pie*_*tte 16
听起来您正在使用嵌套片段,因为您的ViewPager在PagerFragment中.您是否已将getChildFragmentManager()传递给FragmentPagerAdapter的构造函数?如果没有,你应该.
我不认为你需要一个FragmentStatePagerAdapter,但我会给它一个镜头,因为它处理保存和恢复Fragment状态.你的onDestroyView()hack工作的事实让我觉得你可能想要一个FragmentStatePagerAdapter.
它也可能与FragmentPagerAdapter添加Fragments的方式有关.FragmentPagerAdapter不会将片段添加到Backstack.想象一下,如果您的ViewPager中添加了10多个页面,并且用户可以浏览它们.用户需要回击11次才能退出应用程序.
它也可能与这篇文章有关:嵌套片段和后栈.
另外我不确定你要将片段C添加到.您是否将其添加到与ViewPager相同的容器中?
好吧,至少你有一些选择可以调查.在这些情况下,我喜欢调试Android SDK源代码,看看是什么导致了这种行为.我建议抓住AOSP源并添加框架/支持和框架/ base作为SDK源.这是理解正在发生的事情的唯一真实方式,并避免在事情发生之前进行随机更改.
| 归档时间: |
|
| 查看次数: |
9610 次 |
| 最近记录: |