ViewPager刷新數據,動態更改adapter的數量

查了很多資料,發現要做到ViewPager刷新數據,動態更改adapter的數量那種效果只要實現這個方法就可以了:

private class ViewPageAdapter extends FragmentPagerAdapter {

        public ViewPageAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return fragmentList.get(position);
        }

        @Override
        public int getCount() {
            return fragmentList.size();
        }

        @Override
        public int getItemPosition(Object object) {
            return POSITION_NONE;
        }

    }

注意getItemPostion要返回POSTION_NONE時,viewpager會以爲沒有檢測到item的存在從而刷新。但是這種方法不適合數據量比較大的。

我這裏用的是Fragment裝在到ViewPager中,即使我使用了這個方法,依然達不到效果。有一個地方我也不太明白:如果我在主頁去判斷數據應該分多個頁面出來,也就是分多少個fragment出來時,獲取判斷是否爲最後一頁的boolean值總是對不上。有興趣的可以試試在下面這個newInstance加一個boolean來標記是否爲數據的最後一頁,因爲這種方法行不通,我只能在fragment去判斷是不是最後一頁。

    public static DataFragment newInstance(int page){
        DataFragment dataFragment = new DataFragment();
        Bundle args = new Bundle();
        args.putInt("page", page);
        dataFragment.setArguments(args);
        return dataFragment;
    }

    @Override
    public void setArguments(Bundle args) {
        super.setArguments(args);
        page = args.getInt("page", 0);
    }


項目地址:https://github.com/arjinmc/ViewPagerUpdateDemo

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