Android 什么时候是FragmentPagerAdapter';你叫什么名字?

Android 什么时候是FragmentPagerAdapter';你叫什么名字?,android,fragmentpageradapter,Android,Fragmentpageradapter,我正在编写一个使用FragmentPagerAdapter的应用程序。适配器中的片段需要根据外部数据进行更新,但这不会发生。我注意到片段类只在getItem函数中实例化一次: @Override public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(),

我正在编写一个使用FragmentPagerAdapter的应用程序。适配器中的片段需要根据外部数据进行更新,但这不会发生。我注意到片段类只在getItem函数中实例化一次:

@Override
public Fragment getItem(int position) {
    TabInfo info = mTabs.get(position);
    return Fragment.instantiate(mContext, info.clss.getName(),
                info.args);
}
即使我删除了这个类并使用了一个新的类,也没有任何帮助-这个方法只调用一次,第一次填充选项卡时,然后再也不会调用。有人知道为什么吗


谢谢

getItem将在适配器需要片段而该片段不存在时调用

如果片段已经存在于FragmentManager中,那么就不需要实例化它,也不需要调用getItem

要更新现有片段,您需要从FragmentManager或适配器检索它,并相应地对其进行操作


默认情况下,viewpager将为可见页面及其旁边的页面创建片段。也就是说,从位置1和2的碎片开始。当您滑动到第2页时,位置3处的片段将被创建等

以比上面的答案更具体(这是正确的!),getItem由FragmentPagerAdapter的InstanceItem(视图组容器,int位置)方法调用。以防万一:)

只需使用
FragmentStatePagerAdapter
而不是
FragmentPagerAdapter


FragmentStatePagerAdapter销毁不需要的片段实例,并根据需要再次实例化。另一方面,FragmentPagerAdapter只需分离片段并重新连接。所以在FragmentPagerAdapter中创建的碎片永远不会被销毁。这就是为什么我总是喜欢FragmentStatePagerAdapter。

可以销毁碎片吗?@n00bprogrammer您能告诉我如何解决这个问题吗,因为我也遇到了同样的问题。+1获取有关ViewPager为可见页面和它旁边的页面创建碎片的信息。我想知道为什么我一直看到选项卡1中的东西,而只有选项卡0可见。我知道这是非常古老的,但无论如何,我会添加在以防万一。片段寻呼机适配器保留内存中的片段,在只有几个选项卡时使用。片段状态寻呼机适配器将在每次滑动时销毁片段实例以节省内存