利用Toolbar和SlidingTabLayout实现Tab

14 篇文章 0 订阅

利用Toolbar和SlidingTabLayout实现Tab

@(Blog)[马克飞象|Markdown|Android]

首先你必须清楚Toolbar、ViewPaper的使用,之前选择直接看网上Toolbar下增加Tab的Blog,看起来好像很难的样子,于是乎,便把这几个分开看了,再回来实现这个功能的时候,发现其实很简单。
利用Toolbar替换ActionBar
ViewPager 用法

实现Tab功能我们需要使用到Google已经实现好了的一个Tab布局(SlidingTabLayout),这并不是在support包里的控件,而是在Sample中一个实现类。

布局

已经了解ToolbarViewPager的同学应该会发现这只需要在Toolbar下加入SlidingTabLayout就行了

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#B6B6B6">
    <com.example.focus.androidnote.toolbar.SlidingTabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>

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

代码

mTabLayout = (SlidingTabLayout) findViewById(R.id.tab_layout);
mPage = (ViewPager) findViewById(R.id.pager);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
//替换ActionBar
setSupportActionBar(mToolbar);
//getSupportActionBar().setHomeButtonEnabled(true);
//getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//关联menu布局文件
//mToolbar.inflateMenu(R.menu.menu_main);
//mToolbar.setTitle("Title");
//设置导航按钮
mToolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);

mListFragment = new ArrayList<>();
for (int i = 0; i < 3; i++) {
    mListFragment.add(TextFragment.newInstance("Fragment" + i));
}

PagerAdapter adapter = new TabPagerAdapter(getSupportFragmentManager());
mPage.setAdapter(adapter);

mTabLayout.setViewPager(mPage);

关键是最后一句mTabLayout.setViewPager(mPage);,在这之前的代码都是为了实现Toolbar和ViewPager的代码
效果图

提示
Android M里引入一个新的包compile 'com.android.support:design:22.2.0'里面添加了很多新的控件,包括TabLayout,目前还没试过,在此做下记录。
Android M新控件之FloatingActionButton,TextInputLayout,Snackbar,TabLayout的使用

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值