Android - ViewPager - Fragment Refresh

摘要: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訊息。