在ViewPager中獲取Fragment
阿新 • • 發佈:2019-02-15
用Fragment來填充ViewPager是,Fragment都是通過建立物件來新增到ViewPager中的,
mFirstFrag = new FirstFragment(MainActivity.this);
mSecondFrag = new SecondFragment(MainActivity.this);
mThirdFrag = new ThirdFragment(MainActivity.this);
FragmentPagerAdapter madapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return mLi.size();
}
@Override
public Fragment getItem(int arg0) {
return mLi.get(arg0);
}
};
mLi.add(mFirstFrag);
mLi.add(mSecondFrag);
mLi.add(mThirdFrag);
contentPager.setAdapter(madapter);
獲取當前展示的Frament的方法
int index = contentPager.getCurrentItem();
switch (index) {
case 0://索引為0的是第一個頁面,mFirstFrag是第一個頁面
mFirstFrag.show(count);
break;
case 1:
mSecondFrag.show(count);
break;
default:
break;
}
第二個問題是:viewPager的快取問題
當我們顯示第一個頁面的時候,第二個頁面就快取好了,但是當我們從第三個頁面切換到第一個頁面的時候,第一個頁面已經被銷燬了,這是後會重新載入,會呼叫Fragment的onCreateView方法,如果我們不想讓他重新載入怎麼辦呢?
contentPager.setOffscreenPageLimit(3);讓viewpager快取3個頁面