我正在开发一个ViewPager横向滚动表的应用程序,有时我需要更改适配器加载不同的表。 我试着做到以下几点:
I'm developing an app with a ViewPager for lateral scrolling tables, sometimes i need to change the adapter to load a different set of tables. I've tried to do the following:
mViewPager.setAdapter(new pagerAdapterPushed(getSupportFragmentManager()));
mViewPager.getAdapter().notifyDataSetChanged();
indicator.setViewPager(mViewPager);
indicator.invalidate();
mViewPager.invalidate();
但它总是刷新previous数据。是不是不可能性改变ViewPager的适配器?
but it always reload the previous data. Isn't it possibile to change the adapter of a ViewPager?
酷似我的应用程序在做什么...
Exactly like my APP doing...
有关变化ViewPagerAdapter,我所做的是:
For change ViewPagerAdapter, what I did is :
清除所有碎片电流适配器内部 设置当前适配器为null指定为ViewPager新adpater Clear all Fragments inside current adapter Set current adapter to null
Assign new adpater for 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 MyewPagerAdapter(getSupportFragmentManager());
Constants.VP.setAdapter(Constants.PAGER);
希望它帮助〜