修改:the project folder, ready for android studio
我从here下载了EffectiveNavitaion.zip项目并开始修补它,
on'DemoObjectFragment'我在函数外添加了一个计数器:
static int count =0
我在OnCreateView()
中更改了一行((TextView) rootView.findViewById(android.R.id.text1)).setText(
(savedInstanceState == null ? "null" : "restored") + count++);
我注意到,当我在交替标签之间滑动时,例如(1,2,3,2,3,2,3),标签不会改变(它们的计数保持不变),我们看到旧的从未销毁过的标签
尽管DemoObjectFragment上的onCreateView()在每次滑动时都会被调用,但似乎每次滑动都会创建一个新的Fragment并且最终根本没有被使用,
我的问题是:我看到的行为是否有原因或代码中是否存在问题?
答案 0 :(得分:0)
我想我发现了这一点,当一个特定的项目被调用时,'FragmentStatePagerAdapter'会想让2个直接邻居准备好进行滑动,
它已经有一个(我们来自的那个),它要求另一个,事情是,它一次只缓存3个(我们正在查看的那个及其邻居)
因此,在2个制表符之间交替总是导致'FragmentStatePagerAdapter'中的getItem()调用