2016-09-27 6 views
0

Ich habe ein Tab-Layout und eine Ansicht Pager. Das Tab-Layout beginnt immer mit einer einzelnen Registerkarte. Ich möchte jedoch neue Registerkarten dynamisch über Schaltflächen hinzufügen und entfernen können.Android Hinzufügen und Entfernen von Fragmenten zu FragmentPagerAdapter

In 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); 

Die setupViewPager Methode:

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

Die viewPageAdapter Klasse:

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); 
    } 
} 

Ist es möglich, Fragmente zu/von dem viewpager dynamisch hinzufügen und entfernen ? Ich verstehe, dass das Hinzufügen neuer Fragmente über diese Methode relativ einfach ist. Wie aber würde ich Fragmente entfernen?

Antwort

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