是否可以在运行时在ViewPager中添加/删除选项卡?

露西安·雅各布(Lucian Iacob)
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    Log.v(TAG, "onCreateView");

    View rootView = inflater.inflate(R.layout.fragment_home, container, false);

    // setting up the view pager and tab layout
    mViewPager = (ViewPager) rootView.findViewById(R.id.view_pager);
    mTabLayout = (TabLayout) rootView.findViewById(R.id.tab_layout);
    PageAdapter adapter = new PageAdapter(getFragmentManager());
    mViewPager.setAdapter(adapter);

    mTabLayout.setupWithViewPager(mViewPager);
    mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));

    return rootView;
}

我的自定义寻呼机适配器如下所示:

public class PageAdapter extends FragmentStatePagerAdapter {

    public PageAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return new GroupTabFragment(position);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        String title = "";
        switch (position) {
            case 0:
                title = "Game";    // this is from a template, i have to
                break;             // return title dynamically
            case 1:
                title = "Movie";
                break;
        }
        return title;
    }

    @Override
    public int getCount() {
        return 2;                  // the tabs number is a subject of change
    }                              // i don't know it from the begining
}

我的问题是,单击按钮或类似的东西时,我必须添加或删除选项卡。

每个选项卡将显示经典的对象列表。谢谢你。

数字

有两种方法可以执行此操作,但ViewPager不适合动态删除:

1)ArrayList<Fragment> data作为参数传递PageAdapter

然后,适配器将如下所示:

public class PageAdapter extends FragmentStatePagerAdapter {
private ArrayList<Fragment> data;

public PageAdapter(FragmentManager fm, ArrayList<Fragment> data) {
    super(fm);
    this.data = data;
}

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

@Override
public CharSequence getPageTitle(int position) {
    String title = "";
    switch (position) {
        case 0:
            title = "Game";    // this is from a template, i have to
            break;             // return title dynamically
        case 1:
            title = "Movie";
            break;
    }
    return title;
}

@Override
public int getCount() {
    return data.size();                  // the tabs number is a subject of change
}                              // i don't know it from the begining

}

删除您在“活动\片段”中执行的项目:

data.remove(fragmentId);
adapter.notifyDataSetChanged();

2)每次要删除项目时都要重新创建适配器。因此,您基本上可以使用新数据创建新适配器。

data.remove(fragmentId);
PageAdapter adapter = new PageAdapter(getFragmentManager(), data);
mViewPager.setAdapter(adapter);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在运行时从Glade定义中添加Gtk :: Notebook选项卡?

来自分类Dev

使用QTabWidget单击时在运行时将内容加载到选项卡中

来自分类Dev

在运行时将表单组件放在选项卡中

来自分类Dev

PagerSlidingTabStrip:如何在运行时刷新当前选项卡中的内部片段Listview并停止为下一个选项卡加载数据

来自分类Dev

C#-在运行时编辑选项卡页的文本属性

来自分类Dev

选项卡栏在运行时未显示在子页面上

来自分类Dev

在运行时更改选项卡项标题(WPF、c#)

来自分类Dev

在Swift中是否可以在运行时向对象添加变量?

来自分类Dev

是否可以在运行时在Julia中创建类型?

来自分类Dev

是否可以在运行时在Typescript中验证类型?

来自分类Dev

是否可以在Bootstrap的活动选项卡中添加箭头?

来自分类Dev

如何在运行时动态设置带有片段的操作栏中可滑动选项卡的数量

来自分类Dev

是否可以在运行时将可观察对象添加到CombineLatest(或类似方法)中?

来自分类Dev

在运行时log4net删除文件是否可以c#

来自分类Dev

猫鼬-是否可以在运行时动态添加方法以建模?

来自分类Dev

Java:是否可以在运行时将代理添加/附加到活动对象实例?

来自分类Dev

Java:是否可以在运行时将代理添加/附加到活动对象实例?

来自分类Dev

共享首选项是否在运行时存储在内存中?

来自分类Dev

从 ViewPager 中删除选项卡指示器

来自分类Dev

在运行时添加,修改,删除celery.schedules

来自分类Dev

在运行时添加,修改,删除celery.schedules

来自分类Dev

在运行时从 django 添加/删除 url 模式

来自分类Dev

wxPython 在运行时向 ScrolledWindow 添加/删除控件

来自分类Dev

在c ++中的FLTK中在运行时添加/删除小部件

来自分类Dev

在C ++中的FLTK中在运行时添加/删除小部件

来自分类Dev

是否可以在运行时获取Java类的serialVersionUID

来自分类Dev

是否可以在运行时替换方法?

来自分类Dev

是否可以在运行时使用Java实现接口?

来自分类Dev

是否可以在运行时获取类型参数?

Related 相关文章

  1. 1

    如何在运行时从Glade定义中添加Gtk :: Notebook选项卡?

  2. 2

    使用QTabWidget单击时在运行时将内容加载到选项卡中

  3. 3

    在运行时将表单组件放在选项卡中

  4. 4

    PagerSlidingTabStrip:如何在运行时刷新当前选项卡中的内部片段Listview并停止为下一个选项卡加载数据

  5. 5

    C#-在运行时编辑选项卡页的文本属性

  6. 6

    选项卡栏在运行时未显示在子页面上

  7. 7

    在运行时更改选项卡项标题(WPF、c#)

  8. 8

    在Swift中是否可以在运行时向对象添加变量?

  9. 9

    是否可以在运行时在Julia中创建类型?

  10. 10

    是否可以在运行时在Typescript中验证类型?

  11. 11

    是否可以在Bootstrap的活动选项卡中添加箭头?

  12. 12

    如何在运行时动态设置带有片段的操作栏中可滑动选项卡的数量

  13. 13

    是否可以在运行时将可观察对象添加到CombineLatest(或类似方法)中?

  14. 14

    在运行时log4net删除文件是否可以c#

  15. 15

    猫鼬-是否可以在运行时动态添加方法以建模?

  16. 16

    Java:是否可以在运行时将代理添加/附加到活动对象实例?

  17. 17

    Java:是否可以在运行时将代理添加/附加到活动对象实例?

  18. 18

    共享首选项是否在运行时存储在内存中?

  19. 19

    从 ViewPager 中删除选项卡指示器

  20. 20

    在运行时添加,修改,删除celery.schedules

  21. 21

    在运行时添加,修改,删除celery.schedules

  22. 22

    在运行时从 django 添加/删除 url 模式

  23. 23

    wxPython 在运行时向 ScrolledWindow 添加/删除控件

  24. 24

    在c ++中的FLTK中在运行时添加/删除小部件

  25. 25

    在C ++中的FLTK中在运行时添加/删除小部件

  26. 26

    是否可以在运行时获取Java类的serialVersionUID

  27. 27

    是否可以在运行时替换方法?

  28. 28

    是否可以在运行时使用Java实现接口?

  29. 29

    是否可以在运行时获取类型参数?

热门标签

归档