摘要:Android - ViewPager - Fragment Refresh
今天遇到的一個問題
是ViewPager 的各頁面,其實有相關的資料,如果其中一個頁面更動,另一個頁面,如果有相同的東西,就要更動。
但ViewPager在載入時,就會將這一個與下一個的資料預先載入。
如果我對第一個做更動,第二個由於已經預先載入了,所以沒有立即的連動到。
所以我就得在頁面滑動完畢,就需將Fragment做更新
public OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener(){
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int position) {
//更新狀態
Fragment frag = mPagerAdapter.getFragment(position);
if(frag!=null) {
PageFragment pageFrag = (PageFragment)frag;
pageFrag.refresh();
}
}
};
這需要多加兩個步驟。
在自己的PagerAdapter,加入getFragment(position),用來取得第幾筆的Fragment,其後會有HashMap設定某個position的Fragment,以便取得。
在PageFragment加入refresh,當切換時,會更新UI訊息。