這幾天在寫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(); }這樣就可以都即時刷新數據。
新聞熱點
疑難解答