动态设置FragmentActivity+ViewPager+FragmentPagerAdapter结构中的fragment

在写一个视频播放应用时,需要根据用户的选择,动态展示不同(个数)的fragment,自然就想到了使用ViewPager的setAdapter动态设置FragmentPagerAdapter来切换, 结果发现不起作用,设置完后不走adapter的getItem()回调,要知道,新的fragment是在这里new出的。尝试调用mPagerAdapter.notifyDataSetChanged(),问题依然。

没找到其他好的方法,只好把原来的frament一一remove掉:

        private List<Fragment> mFragmentInstanceList; 
        FragmentVideoList fragment =  FragmentVideoList.newInstance();  
        mFragmentInstanceList.add(fragment);  //保存存量的fragment        
        ......
        
        if (mViewPager.getAdapter() != null) {
            FragmentManager fm = getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            for(Fragment fragment:mFragmentInstanceList){
                ft.remove(fragment);  //remove所有的fragment
            }
            ft.commit();
        }
        
        //重写构建adapter
        mPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(mPagerAdapter); 
        mTabPageIndicator.notifyDataSetChanged();


你可能感兴趣的:(动态设置FragmentActivity+ViewPager+FragmentPagerAdapter结构中的fragment)