【发布时间】:2016-09-27 14:12:23
【问题描述】:
我有一个选项卡布局和一个视图寻呼机。标签布局总是从一个标签开始,但是,我希望能够通过按钮动态添加和删除新标签。
在 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 中动态添加和删除片段?我通过这种方法了解到,添加新的片段是比较简单的。但是,我将如何删除碎片?
【问题讨论】:
-
在 addFragment() 方法中你错过了 notifyDataSetChanged();否则会崩溃
标签: java android android-fragments fragmentpageradapter