如题,我现在有两种实现方法方法一:已经可以从删除的地方回传删除的Fragment在List中的位置,所以更新适配器中的List,remove掉删除的。然后删除ViewPager缓存中对应的Fragment。再notifyDataSetChanged()Listfragments=fm.getFragments(); FragmentTransactiontransaction=fm.beginTransaction();//mDeleteCityArry是删除的Fragment的位置的数组for(inti=0;imFragmentList.remove(mDeleteCityArry[i]); //删除相应的缓存碎片。transaction.remove(fragments.get(mDeleteCityArry[i]));transaction.commit();//重新设置适配器中的ListmAdapter.setList(mFragmentList);mAdapter.notifyDataSetChanged();}方法二:其实和方法一类似,但是是删除所有ViewPager中缓存的Fragment。再删除mFragmentList中的所有内容,全部重建Fragment,重新设置适配器中的List。一了百了。mForecasts=mforecastDao.getAllCity();forecastSize=mForecasts.size();Listfragments=fm.getFragments(); FragmentTransactiontransaction=fm.beginTransaction();//把所有缓存碎片都删了。for(FragmentchildFragment:fm.getFragments()){transaction.remove(childFragment);transaction.commit();}//再全部重新创建。mFragmentList.clear();for(inti=0;imFragmentList.add(OutterFragment.newInstance(mForecasts.get(i).getCity())); }//重新设置适配器中的ListmAdapter.setList(mFragmentList);mAdapter.notifyDataSetChanged();当然也试过下面这个方法,也没用。publicintgetItemPosition(Objectobject){returnPOSITION_NONE;}总是会在重建Framment的出现空指针错误。应该是这里删除的问题。添加用类似的方法是没问题的。
守候你守候我
相关分类