TabLayout+ViewPager(一)

一幔妨、在Android的開(kāi)發(fā)當(dāng)中Tablayout和Viewpager的混合使用是很多的,

效果圖

462363917730815980.jpg
二傍菇、使用步驟

1猾瘸、導(dǎo)入依賴(lài)

compile 'com.android.support:design:25.1.0'

2、布局文件

<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
    android:orientation="vertical">

    <!--Tab頁(yè)-->
    <android.support.design.widget.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabIndicatorColor="@color/red"
        app:tabSelectedTextColor="@color/red"
        app:tabTextColor="@color/black" />

    <android.support.v4.view.ViewPager
        android:id="@+id/main_vp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

3、代碼中

/**
 * 商品管理
 */
public class ProductManageActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, TabLayout.OnTabSelectedListener {
    @BindView(R.id.tabLayout)
    TabLayout tabLayout;
    @BindView(R.id.main_vp)
    ViewPager mViewPager;

    private Context mContext;
    private MainAdapter mainAdapter; //適配器
    private List<Fragment> mFragmentList;
    private List<String> mTitleList; //Tab的標(biāo)題

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_product_manage);
        ButterKnife.bind(this);

        mContext = this;
        initData();
        initTabLayout();
        initViewPager();
    }

    private void initViewPager() {
        mainAdapter = new MainAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(mainAdapter);//給ViewPager設(shè)置適配器
        mViewPager.setAdapter(mainAdapter);
        tabLayout.setupWithViewPager(mViewPager);
        mViewPager.setOnPageChangeListener(this);
    }

    //初始化ViewPager的數(shù)據(jù)源
    private void initData() {
        mFragmentList = new ArrayList<>();
        mFragmentList.add(new HasOnLineFragment());
        mFragmentList.add(new WaitOnlineFragment());
        mFragmentList.add(new OffLineFragment());
    }

    private void initTabLayout() {
        mTitleList = new ArrayList<>();
        //添加頁(yè)卡標(biāo)題
        mTitleList.add(getString(R.string.has_online));
        mTitleList.add(getString(R.string.wait_online));
        mTitleList.add(getString(R.string.off_line));
        tabLayout.addOnTabSelectedListener(this);
    }


   
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        //ViewPager滑動(dòng)
        switch (position) {
            case 0:
                break;
            case 1:

                break;
            case 2:

                break;
            default:
                break;
        }
    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }

    //TabLayout的Item被選中
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        int position = tab.getPosition();
        mViewPager.setCurrentItem(position); //設(shè)置當(dāng)前fragment
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {

    }

    @Override
    public void onTabReselected(TabLayout.Tab tab) {

    }

    //適配器
    public class MainAdapter extends FragmentPagerAdapter {

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

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

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

      //獲取標(biāo)題
        @Override
        public CharSequence getPageTitle(int position) {
            return mTitleList.get(position);
        }
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牵触,一起剝皮案震驚了整個(gè)濱河市淮悼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌揽思,老刑警劉巖袜腥,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異绰更,居然都是意外死亡瞧挤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)儡湾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人执俩,你說(shuō)我怎么就攤上這事徐钠。” “怎么了役首?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵尝丐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我衡奥,道長(zhǎng)爹袁,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任矮固,我火速辦了婚禮失息,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘档址。我一直安慰自己盹兢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布守伸。 她就那樣靜靜地躺著绎秒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尼摹。 梳的紋絲不亂的頭發(fā)上见芹,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音蠢涝,去河邊找鬼玄呛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惠赫,可吹牛的內(nèi)容都是我干的把鉴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼庭砍!你這毒婦竟也來(lái)了场晶?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤怠缸,失蹤者是張志新(化名)和其女友劉穎诗轻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體揭北,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扳炬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搔体。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恨樟。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖疚俱,靈堂內(nèi)的尸體忽然破棺而出劝术,到底是詐尸還是另有隱情,我是刑警寧澤呆奕,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布养晋,位于F島的核電站,受9級(jí)特大地震影響梁钾,放射性物質(zhì)發(fā)生泄漏绳泉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一姆泻、第九天 我趴在偏房一處隱蔽的房頂上張望零酪。 院中可真熱鬧,春花似錦麦射、人聲如沸蛾娶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛔琅。三九已至,卻和暖如春峻呛,著一層夾襖步出監(jiān)牢的瞬間罗售,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工钩述, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寨躁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓牙勘,卻偏偏與公主長(zhǎng)得像职恳,于是被迫代替她去往敵國(guó)和親所禀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評(píng)論 25 707
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,708評(píng)論 22 664
  • 1放钦、有人問(wèn)西餐之母是哪個(gè)國(guó)家的菜? 大部分人會(huì)說(shuō)是法國(guó)菜色徘,其實(shí),西餐之母是意大利菜! 意大利民族是一個(gè)美食家的民族...
    道形圖閱讀 671評(píng)論 2 16
  • 骨生花 窈窈如她 一曲舞盡花閉月 朱砂點(diǎn)眉間 骨生花 癡癡如他 一席天下嫁作衣 韶華付誰(shuí)與 骨生花 亂世無(wú)家 一袍...
    塵寰念緣閱讀 118評(píng)論 0 0
  • 一周又這樣悄無(wú)聲息的溜走,忙忙碌碌颓屑。好在我還有記錄的習(xí)慣斤寂,能讓我知道自己到底做了點(diǎn)什么。 一個(gè)人在圖書(shū)館看書(shū)...
    yologh閱讀 196評(píng)論 0 2