AndroidでのTabLayoutとViewPagerの併用

4573 ワード

まずAndroid Studioにこのようなパッケージを導入します
compile ‘com.android.support:design:23.1.1’
com.Android.support:design:23.1.1サポートされている新しいコントロール.
android.support.design.widget.TextInputLayoutの強力なヒント付きMDスタイルのEditText android.support.design.widget.FloatingActionButton MDスタイルの円形ボタンは、ImageView androidから来ています.support.design.widget.SnackbarはToastに似ていて、簡単な単一アクションandroidを追加した.support.design.widget.タブをクリックしてsupport.design.widget.NavigationView DrawerLayoutのSlideMenu android.support.design.widget.スーパーロボットsupport.design.widget.AppBarLayout MDスタイルのスライドLayout android.support.design.widget.CollapsingToolbarLayout折りたたみ可能MDスタイルToolbarLayout詳しくはこちらをご覧ください
http://www.open-open.com/lib/view/open1433385856119.html
レイアウト図は以下の通りtablayout下はviewpagerでいいです
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

        <android.support.design.widget.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#34CE7B"
            app:tabIndicatorColor="@android:color/white"
            app:tabSelectedTextColor="@android:color/white"
            app:tabTextAppearance="@style/style_tab_text_size"
            app:tabTextColor="@android:color/white">
        android.support.design.widget.TabLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    android.support.v4.view.ViewPager>

LinearLayout>

Tablayoutの初期化とtitleデータの追加
//titleを初期化する名前はValues/arrays.xmlで定義
mTitleList=new ArrayList<>();
mTitleList.add(getResources().getString(R.string.hot_scenic));
mTitleList.add(getResources().getString(R.string.newest_scenic));

//  Tab_Layout   
mTabLayout.setTabMode(TabLayout.MODE_FIXED);
// tablayout  tab  
if(mTitleList!=null){
    mTabLayout.addTab(mTabLayout.newTab().setText(mTitleList.get(0)));
    mTabLayout.addTab(mTabLayout.newTab().setText(mTitleList.get(1)));
}

最後にviewpagerがfragmentPagerAdapterを設定してからviewpagerとtablayoutを関連付け、fragmentPagerAdapterで次の方法を実装してTitleを表示します.
@Override
        public CharSequence getPageTitle(int position) {
            return titles[position];
        }

最後にsetupWithViewPager(mViewPager);