欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TabLayout

程序员文章站 2022-06-01 09:10:03
...

TabLayout

2017/10/18 9:06:05


添加依赖

compile 'com.android.support:design:26.0.0-alpha1'

属性 ##

使用之前注意添加

xmlns:app="http://schemas.android.com/apk/res-auto"
  • app:tabSelectedTextColor : Tab被选中字体的颜色
  • app:tabTextColor : Tab未被选中字体的颜色
  • app:tabIndicatorColor : Tab指示器下标的颜色
  • app:tabBackground : 整个Tab的颜色
  • app:tabTextAppearance : 改变字体样式
  • app:tabIndicatorHeight : 指示器小标的高度
  • app:tabMode : 模式 默认 fixed 固定 scrollable 可以滑动
  • app:tabGravity : 内容显示模式
  • app:tabMaxWidth :最大宽度
  • app:tabMinWidth :最小宽度
  • app:tabContentStart : 开始位置的偏移量

使用方式

1

在TabLayout布局文件中添加TabItem
  • 效果

TabLayout

  • 布局文件代码

2

在代码中添加
  • 效果

TabLayout

  • 代码

    //查找控件
    tab_layout = (TabLayout) findViewById(R.id.tab_layout);
    //添加tab
    tab_layout.addTab(tab_layout.newTab().setText("国际"));
    tab_layout.addTab(tab_layout.newTab().setText("国内"));
    tab_layout.addTab(tab_layout.newTab().setText("娱乐"));
    tab_layout.addTab(tab_layout.newTab().setText("电影"));
    tab_layout.addTab(tab_layout.newTab().setText("音乐"));
    tab_layout.addTab(tab_layout.newTab().setText("图片"));
    tab_layout.addTab(tab_layout.newTab().setText("游戏"));
    tab_layout.addTab(tab_layout.newTab().setText("出行"));
    

添加图标

  • 效果

TabLayout

  • 代码

    tab_layout.addTab(tab_layout.newTab().setText("国际").setIcon(R.drawable.test));
    tab_layout.addTab(tab_layout.newTab().setText("国内").setIcon(R.drawable.test));
    tab_layout.addTab(tab_layout.newTab().setText("娱乐").setIcon(R.drawable.test));
    tab_layout.addTab(tab_layout.newTab().setText("电影").setIcon(R.drawable.test));
    tab_layout.addTab(tab_layout.newTab().setText("音乐").setIcon(R.drawable.test));
    tab_layout.addTab(tab_layout.newTab().setText("图片").setIcon(R.drawable.test));
    tab_layout.addTab(tab_layout.newTab().setText("游戏").setIcon(R.drawable.test));
    tab_layout.addTab(tab_layout.newTab().setText("出行").setIcon(R.drawable.test));
    

TabLayout + ViewPager + Fragment

效果

TabLayout

代码

    //集合存入标题
    list.add("关注");
    list.add("推荐");
    list.add("热点");
    list.add("汽车");
    list.add("科技");
    list.add("视频");
    list.add("数码");

    //设置适配器
    view_pager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {

        /**
         * 标题
         * @param position
         * @return
         */
        @Override
        public CharSequence getPageTitle(int position) {
            return list.get(position);
        }

        /**
         * 返回对应的Fragment
         * @param position
         * @return
         */
        @Override
        public Fragment getItem(int position) {

            Fragment fragment = null;

            switch (position) {

                case 0:
                    fragment = new Fragment_0();
                    break;

                case 1:
                    fragment = new Fragment_1();
                    break;

                case 2:
                    fragment = new Fragment_2();
                    break;

                case 3:
                    fragment = new Fragment_3();
                    break;

                case 4:
                    fragment = new Fragment_4();
                    break;

                case 5:
                    fragment = new Fragment_5();
                    break;
                case 6:
                    fragment = new Fragment_6();
                    break;
                default:

                    break;


            }

            return fragment;
        }

        /**
         * 条目数
         * @return
         */
        @Override
        public int getCount() {
            return list.size();
        }
    });

    //关联
    tab_layout.setupWithViewPager(view_pager);
相关标签: android Tablayout