android - FragmentPagerAdapter getItem 未被调用

标签 android android-fragments android-fragmentactivity

我无法在 FragmentPagerAdapter 中重用 fragment 。使用 destroyItem() 方法,它正在删除 fragment ,但仍然没有再次调用 getItem()。只有 2-3 个图像,所以我使用 FragmentPagerAdapter 而不是FragmentStatePagerAdapter..

public class ExamplePagerAdapter extends FragmentPagerAdapter {

    ArrayList < String > urls;
    int size = 0;
    public ExamplePagerAdapter(FragmentManager fm, ArrayList < String > res) {
        super(fm);
        urls = res;
        size = urls.size();
    }

    @Override
    public int getCount() {
        if (urls == null) {
            return 0;
        } else {
            return size;
        }

    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        FragmentManager manager = ((Fragment) object).getFragmentManager();
        FragmentTransaction trans = manager.beginTransaction();
        trans.remove((Fragment) object);
        trans.commit();
    }

    @Override
    public Fragment getItem(int position) {

        Fragment fragment = new FloorPlanFragment();
        Bundle b = new Bundle();
        b.putInt("p", position);
        b.putString("image", urls.get(position));
        Log.i("image", "" + urls.get(position));
        fragment.setArguments(b);
        return fragment;
    }
}

在 FragmentActivity 中,

pager.setAdapter(new ExamplePagerAdapter(getSupportFragmentManager(), res2)); 

最佳答案

亲吻答案:

简单使用FragmentStatePagerAdapter而不是 FragmentPagerAdapter .

我得到了答案.. 首先我想删除这个问题,因为我犯了一个非常愚蠢的错误,但是这个答案将帮助面临同样问题的人,而不是 FragmentPagerAdapter,使用 FragmentStatePagerAdapter.

正如评论中提到的@BlackHatSamurai:

The reason this works is because FragmentStatePagerAdapter destroys as Fragments that aren't being used. FragmentPagerAdapter does not.

关于android - FragmentPagerAdapter getItem 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12581896/

相关文章:

android - FragmentActivity 切换错误... "Incompatible types"或 "FragmentTransaction cannot be applied"

java - 需要从android studio中的assets文件夹中读取txt文件

android - 如何将后退按钮事件从 phonegap 发送到 ember 应用程序?

java - 异步任务错误 #1 和 Internet 权限

android - FragmentPagerAdapter 在方向更改时不恢复 fragment

android - Activity 中的 OnOptionsItemSelected 在 fragment 中的 onOptionsItemSelected 之前被调用。其他方式可能吗?

android - 在 Fragment 中获取 not null Context 的保证方法是什么?

java - 安卓 : Navigate to another fragment

java - 访问 fragment 中声明的微调器

android - 如何为抽屉导航中的每个滑动选项卡制作 fragment