【问题标题】:Android add and remove fragments to FragmentPagerAdapterAndroid 向 FragmentPagerAdapter 添加和删除 Fragment
【发布时间】: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


【解决方案1】:
public void removeFragment(Fragment fragment, String title) {
    mFragmentList.remove(fragment);
    mFragmentTitleList.remove(title);
    notifyDataSetChanged(); 
}

【讨论】:

    猜你喜欢
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    相关资源
    最近更新 更多