2016-09-27 119 views
0

我有一个选项卡布局和一个视图寻呼机。选项卡布局总是以单个选项卡开始,但是,我希望能够通过按钮动态添加和删除新选项卡。Android添加和删除片段到FragmentPagerAdapter

在的onCreate:

mViewPager = (ViewPager) view.findViewById(R.id.viewpager); 
mToolbar = (Toolbar)  view.findViewById(R.id.toolbar); 
mTabLayout = (TabLayout) view.findViewById(R.id.tabs); 

setupViewPager(mViewPager); 
mTabLayout.setupWithViewPager(mViewPager); 

的setupViewPager方法:

private void setupViewPager(ViewPager viewPager) { 
    mAdapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager()); 
    mAdapter.addFragment(new CycleFragment(), "TEST TAB"); 
    viewPager.setAdapter(mAdapter); 
} 

的viewPageAdapter类:

class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
} 

是否有可能动态地添加和删除片段向/从viewpager ?我通过这种方法了解到,添加新的片段相对比较简单。但是,我将如何删除碎片?

回答

0
public void removeFragment(Fragment fragment, String title) { 
    mFragmentList.remove(fragment); 
    mFragmentTitleList.remove(title); 
    notifyDataSetChanged(); 
}