这几天在写viewpager 和fragment 的 一个组合,出现在当前页面的时候,setCurrentItem()
的方法没有起到什么作用。 这是因为 ViewPager 的缓存原因,所以只能另辟他径。在 adapger 中用集合来保存每一个 Fragment 的对象,用到的时候直接从中取出来
这样在Activity 中就拿到了当前显示的Fragment ,可以直接调用Fragment 中写好的更新方法,更新Fragment 中的数据
int position = mViewPager.getCurrentItem();FragmentView fv =(FragmentView) mPagerFragmentAdapter.getCurrentFragment(positon);fv.xxxx();这样可以忽略ViewPager 的postion 和选中的position 一致不能即时更新Fragment 中的数据. 也可以判断一下数据
//其他的可以根据这个继续写 if (viewPager.getCurrentItem() == 0) { //当前页 int position = mViewPager.getCurrentItem(); FragmentView fv = (FragmentView)mPagerFragmentAdapter.getCurrentFragment(positon); fv.updateView(); //后一页 fv = (FragmentView)mPagerFragmentAdapter.getCurrentFragment(positon+1); v.updateView(); }这样就可以都即时刷新数据。
新闻热点
疑难解答