我正在开发一个带有 ViewPager 的应用程序,用于横向滚动表,有时我需要更改适配器以加载一组不同的表。
我尝试执行以下操作:
mViewPager.setAdapter(new pagerAdapterPushed(getSupportFragmentManager()));
mViewPager.getAdapter().notifyDataSetChanged();
indicator.setViewPager(mViewPager);
indicator.invalidate();
mViewPager.invalidate();
但它总是重新加载以前的数据。是否可以更改 ViewPager 的适配器?
就像我的 APP 所做的那样......
对于更改 ViewPagerAdapter,我所做的是:
-
清除当前适配器内的所有片段
-
将当前适配器设置为空
-
为 ViewPager 分配新适配器
/* Clear all Fragments inside current adapter */
public class MyPagerAdapter extends FragmentPagerAdapter
{
private ArrayList<Fragment> fragments = new ArrayList<Fragment>();
//...some stuff
public void clearAll() //Clear all page
{
for(int i = 0; i < fragments.size(); i ++)
fragMan.beginTransaction().remove(fragments.get(i)).commit();
fragments.clear();
}
}
/* Set current adapter to null */
Constants.VP.removeAllViews();
Constants.VP.setAdapter(null);
/* Assign new adpater for ViewPager */
Constants.PAGER = new MyPagerAdapter(getSupportFragmentManager());
Constants.VP.setAdapter(Constants.PAGER);
希望有帮助~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)