ViewPager 如何得到當前的Fragment (使用FragmentPagerAdapter)

使用FragmentPagerAdapter時,難免要在MainActivity 和 當前顯示的Fragment間傳遞數據。但是FragmentPagerAdapter並沒有給我們提供類似getCurrentFragment一類的API。

通過FragmentPagerAdapter源碼,發現每次Fragment切換都會調用到FragmentPagerAdapter.setPrimaryItem 方法。這個方法裏把一個Fragment設置爲mCurrentPrimaryItem。 很明顯,mCurrentPrimaryItem就是我們想得到的當前Fragment.那麼我們只需要重載這個方法,把傳入的Fragment記錄下來即可。

XX

我們可以在Adapter裏定義一個currentFragment成員

複製代碼
public class XXPagerAdapter extends FragmentPagerAdapter{
Fragment currentFragment;

@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
  currentFragment = (QipanFragment) object;
  super.setPrimaryItem(container, position, object);
}

}
複製代碼

 

在外層Activity中,

getFragmentPageAdapter().currentFragment

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章