使用TabLayout实现底部Tab布局

Android design支持库中的TabLayout一般都用来实现头部Tab的效果,
比如:


TabLayout

但是像微信这种底部Tab布局在我们实际项目中还是非常常见的设计,
现在我们也可以用TabLayout非常方便的实现。


底部Tab

布局

下面我们开始实现底部Tab,layout布局比较简单,我们只用把TabLayout放置在底部即可




        

        


我定义了一个自定义的style,把tabIndicatorHeight设为0dp


代码实现

我们首先设置好ViewPager,然后设置TabLayout与ViewPager的对应关系,
最后最关键的是使用TabLayout的setCustomView设置自定义的TAB View。

        viewPager = (ViewPager)findViewById(R.id.viewPager);
        tabLayout = (TabLayout) findViewById(R.id.tabLayout);

        SampleFragmentPagerAdapter pagerAdapter =
                new SampleFragmentPagerAdapter(getSupportFragmentManager(), this);
        viewPager.setAdapter(pagerAdapter);

        tabLayout.setupWithViewPager(viewPager);

        for (int i = 0; i < tabLayout.getTabCount(); i++) {
            TabLayout.Tab tab = tabLayout.getTabAt(i);
            if (tab != null) {
                tab.setCustomView(pagerAdapter.getTabView(i));
            }
        }

        viewPager.setCurrentItem(1);
public View getTabView(int position) {
            View v = LayoutInflater.from(context).inflate(R.layout.custom_tab, null);
            TextView tv = (TextView) v.findViewById(R.id.textView);
            tv.setText(tabTitles[position]);
            ImageView img = (ImageView) v.findViewById(R.id.imageView);
            //img.setImageResource(imageResId[position]);
            return v;
        }

代码例子:BottomTabActivity.java

本文作者: 阳春面
原文地址:http://www.aswifter.com/2015/08/09/implements-bottom-tab-with-tablayout/

欢迎关注我的微信公众号,分享Android 开发,IOS开发,Swift开发和互联网内容
微信号:APP开发者

你可能感兴趣的:(使用TabLayout实现底部Tab布局)