2016-09-27 18 views
0

私はタブレイアウトとビューページャーを持っています。タブレイアウトは常に1つのタブから始まりますが、ボタンを使用して新しいタブを動的に追加したり削除したりできます。 onCreateでFragmentPagerAdapterへのフラグメントの追加と削除

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(); 
} 
関連する問題