Android小知識(5)

ViewPager中FragmentPagerAdapter爲Fragment設置Tag


    /**
     * fragment適配器
     */
    class FragmentAdapter extends FragmentPagerAdapter {

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

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

        @Override
        public int getCount() {
            return mFragmentList == null ? 0 : mFragmentList.size();
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            // 保存每個fragment的tag
            mTagList.put(position, makeFragmentName(container.getId(), getItemId(position)));
            return super.instantiateItem(container, position);
        }
    }

    /**
     * 給每個fragment創建tag
     * <p>
     * 是根據源碼來的,不能隨便改返回字符串值!
     *
     * @param viewId
     * @param id
     * @return
     */
    private static String makeFragmentName(int viewId, long id) {
        return "android:switcher:" + viewId + ":" + id;
    }
發佈了43 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章