1.使用FragmentPagerAdapter情况下
/**
*
* @param viewpagerId viewpager id eg:R.id.vp
* @param position fragment 的位置
* @return
*/
private Fragment getViewPagerFragment(int viewpagerId,int position) {
return getSupportFragmentManager().findFragmentByTag("android:switcher:"
+ viewpagerId + ":" + position);
}
2.使用 FragmentStatePagerAdapter
/**
* 获取fragment实例
*
* @param position fragment位置
* @return
*/
private Fragment getViewPagerFragment(int position) {
FragmentStatePagerAdapter f = (FragmentStatePagerAdapter) vpQuestion.getAdapter();
Fragment fragment = null;
if (f != null) {
//instantiateItem(pager, position) 方法会返回在position位置的fragment的引用。
//如果该fragment 已经实例化了,再次调用instantiateItem(pager,position)的时候,该方法并不会调用
//getItem()来再次实例化fragment,而是直接返回引用。
fragment = f.instantiateItem(vpQuestion, position);
}
return fragment;
}