TabLayout,ViewPager,Fragment結合使用

在xml文件中,書寫TabLayout和ViewPager標籤

    <!-- 和viewpager 結合的標籤 -->
    <android.support.design.widget.TabLayout
        android:id="@+id/home_tab_"
        app:tabBackground="@android:color/transparent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        app:tabMode="scrollable"
        app:tabIndicatorHeight="3dp"
        app:tabIndicatorColor="@color/pink"
        app:tabSelectedTextColor="@color/pink"
        app:tabTextColor="#000"
        ></android.support.design.widget.TabLayout>

    <!-- 首頁主內容區域 -->
    <android.support.v4.view.ViewPager
        android:id="@+id/home_vp_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v4.view.ViewPager>

ViewPager的適配器

/**
     * 首頁frag佈局的適配器,
     */
    class MyHomeVpContentAdapter extends FragmentStatePagerAdapter {

        public MyHomeVpContentAdapter(FragmentManager fm) {
            super(fm);
        }
//          用來設置tablayout的標籤名
        @Override
        public CharSequence getPageTitle(int position) {
            return tabs[position];
        }

        @Override
        public Fragment getItem(int position) {
            switch (position) {
                case HOME_POS:
                    return mHomeTabFragment;
                case LIVE_POS:
                    return mLiveFragment;
                case FOLLOW_POS:
                    return mFollowFragment;
                case OTHER_POS:
                    return mOtherFragment;
            }
            throw new IllegalStateException("No fragment at position " + position);
        }

        @Override
        public int getCount() {
            return tabs.length;
        }
    }

//         viewpager 和 tablayout的結合
        //初始化 viewpager的 adapter
        MyHomeVpContentAdapter myHomeVpContentAdapter = new MyHomeVpContentAdapter(getFragmentManager());
        //設置爲加載一個
        viewpager.setOffscreenPageLimit(1);
        viewpager.setAdapter(myHomeVpContentAdapter);
        //tablayout 綁定 viewpager
        tablayout.setupWithViewPager(viewpager);

新建Fragment

參考我的另一篇博客.
Activity,Fragment的基類封裝,簡化findViewById,Fragment懶加載和不重複加載等

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