立即重新加载ViewPager Android中的所有片段

时间:2016-09-28 09:01:52

标签: android android-fragments android-viewpager android-filter

我的活动中有一个包含5个片段的ViewPager,I  修复了用作过滤器的工具栏上的菜单,点击菜单  item我需要更改所有片段的视图,

我曾经清除过ViewPager中的所有片段并附加了新的片段实例,这会显示正确的视图但是在创建新视图时  我曾经在屏幕上显示进度条,但它没有显示为  我们设置,它在更改所有视图后调用。

我怀疑的是通过用新实例替换片段来更改所有视图的正确方法或者还有任何其他方法来更改与我的上下文相对应的片段中的数据

谢谢


修改
清除适配器以创建新视图

viewPagerAdapter.fragmentArrayList.clear();
viewPagerAdapter.fragmentTitle.clear();
viewPagerAdapter.notifyDataSetChanged();

2 个答案:

答案 0 :(得分:0)

如果您想立即刷新所有片段,可以再次setAdapter ViewPager,而不是像这样刷新所有片段;

    mViewPager.setAdapter(yourAdapter);
    //If you want set current postion for adapter
    mViewPager.setCurrentItem(theCurrentPage);

答案 1 :(得分:0)

如果您只想过滤ViewPager所显示的片段列表,那么您是否理所当然地怀疑是否破坏和重新创建所有片段是一种好方法。这相当于浪费了不必要的资源。

相反,你要么操纵你的片段列表(和片段标题列表?),然后按照Filter的说法调用notifyDataSetChanged()或实施here

所以你去:

viewPagerAdapter.fragmentArrayList.remove(index);

viewPagerAdapter.fragmentArrayList.remove(fragment);

然后你说:

viewPagerAdapter.notifyDataSetChanged();

关于进度条,它位于XML布局中的哪个位置?在视图寻呼机内?然后把它移到外面。别的地方?然后向我们展示您的XML以及创建和显示它的代码。