TabLayout实现自定义标题栏目功能

1、前提

在平时的工作中,大家都会使用到TabLayout,默认情况下TabLayout支持文字的,需要支持图文或者自定义就需要自己来写了。
先上一张图:

2、直接上代码

布局文件

<android.support.design.widget.TabLayoutandroid:id="@+id/tab_layout"android:layout_width="0pt"android:layout_height="150pt"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/view_linear_bill"android:background="@color/color_ffffff"app:tabContentStart="20pt"app:tabGravity="fill"app:tabIndicatorColor="@color/color_333333"app:tabIndicatorFullWidth="false"app:tabIndicatorHeight="5pt"app:tabUnboundedRipple="true"app:tabMode="scrollable"app:tabPaddingBottom="20pt"app:tabPaddingTop="20pt"app:tabSelectedTextColor="@color/color_333333"app:tabTextAppearance="@style/tab_style"app:tabTextColor="@color/color_333333" /><android.support.v4.view.ViewPagerandroid:id="@+id/view_pager"android:layout_width="0pt"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toBottomOf="@+id/tab_layout"app:layout_constraintBottom_toBottomOf="parent"android:layout_height="0pt" />

你自定义的布局文件

<?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"xmlns:tools="http://schemas.android.com/tools"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@drawable/shape_order_choose"android:textSize="43pt"tools:text="测试" /><com.base.util.baseui.widget.view.RTextViewandroid:id="@+id/tv_num"android:layout_width="60pt"android:layout_height="60pt"android:ellipsize="end"android:visibility="gone"android:gravity="center"android:maxLength="3"android:textColor="@color/color_d80c18"android:textSize="35pt"app:background_normal="#FFCBCE"app:corner_radius="90pt"tools:text="2222" /></LinearLayout>

java代码

@Overrideprotected void initData() {// dataList<String> titleList = new ArrayList<>();titleList.add("全部");titleList.add("结算收入");titleList.add("提现支出");titleList.add("退款支出");List<Fragment> fragmentList = new ArrayList<>();fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_0));fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_1));fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_2));fragmentList.add(FinanceBottomFragment.getInstance(Const.FinanceClass.FinanceClass_3));MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentList);viewPager.setAdapter(myFragmentPagerAdapter);viewPager.setOffscreenPageLimit(3);tabLayout.setupWithViewPager(viewPager);for (int i = 0; i < titleList.size(); i++) {tabLayout.getTabAt(i).setCustomView(getTabView(i, titleList.get(i)));}}/*** 自定义的TabLayout** @param position* @param value* @return*/public View getTabView(int position, String value) {View view = LayoutInflater.from(this).inflate(R.layout.view_tablayout_num, null);TextView tv = view.findViewById(R.id.tv_title);RTextView num = view.findViewById(R.id.tv_num);tv.setText(value);num.setText("20");num.setVisibility(View.VISIBLE);return view;}

TabLayout实现自定义标题栏目功能相关推荐

  1. MailBee.NET Objects撰写邮件教程(一):添加和删除自定义标题

    MailBee.NET Objects是一款为创建.发送.接收以及处理电子邮件而设计的健壮.功能丰富的.NET控件.几行代码便可为应用程序添加E-Mail支持,简单高效.具备"必需" ...

  2. 帝国cms调用栏目自定义字段(栏目简介)如何操作

    开源的cms就像一个操作系统,可以满足大部分人的需求,如果你想增加一些特殊的功能,那就二次开发呗,就像APP一样.帝国cms默认的栏目是没有调用栏目自定义字段的,我们可以增加一些概述类的文字,让读者对 ...

  3. 微信分享网页时自定义标题、描述和图片

    用微信打开一个网页,选择右上角的"发送给朋友"后,收到的消息是这样的: 而为了推广效果,我们更希望能自定义标题.描述和图片,效果如下图: 下面介绍下怎样来实现这个功能 <sc ...

  4. h5页面分享朋友,朋友圈设置缩略图,自定义标题,描述!

    #h5页面分享朋友,朋友圈设置缩略图,自定义标题,描述! //要实现显示图片与标题必须调用微信接口, //注意点:1.必须要把跳转的页面绑定到微信的接口域名里://2.后台要进行设置签名算法,获取签名 ...

  5. 修复自定义标题word题注错误:错误,文档中没有指定样式的文字以及编号无法随章节变化问题

    一.单个修复指定章节号 假设采用自定义样式"毕业",如果出现类似提示,可以具体操作如下: 光标定位与错误题注的位置,按shift + F9 {STYLEREF 1 \s} - 2 ...

  6. 批量修复自定义标题带来的word题注错误:错误,文档中没有指定样式的文字

    ①把全部题注转换为域代码.快捷键:ALT+F9,域代码示例{STYLEREF 1 \s},1表示自定义标题1: ②替换域代码中的标题代表为自定义标题代码.利用查找替换功能把 {STYLEREF 1 } ...

  7. 微信分享网页链接自定义标题,图片,文字描述

    我先描述一下该h5的业务场景: 想实现微信中的h5页面分享给好友或者是朋友圈时有自定义的标题,描述,分享图片:而不是...如下图 前提条件: 1.请确认公众号已经认证,只有认证的公众号才具有分享相关接 ...

  8. typecho图标_Typecho微信自定义分享插件WeChatShare 自定义标题描述小图标

    前言 张小龙带领微信走进了大众的生活,在十亿用户的生活里扎根.于是我们不管是阅读.聊天.看视频,基本上都离不开微信.好东西分享给用户,第一时间想到的肯定是微信. 很久以前,一个网页分享到微信聊天,系统 ...

  9. android 自定义多tab悬浮控件,Android编程实现自定义Tab选项卡功能示例

    本文实例讲述了Android编程实现自定义Tab选项卡功能.分享给大家供大家参考,具体如下: import android.app.TabActivity; import android.conten ...

  10. 微信JSSDK进行朋友圈自定义标题、描述、图片、链接分享

    概述 微信JSSDK是什么? 微信的jssdk是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信的jssdk,网页开发者可以借助微信高效的使用拍照.选图.语音.位置等手机系统 ...

最新文章

  1. WEBSERVICE之JDK开发webservice
  2. 基于Redis的分布式锁实现
  3. 【Python】全国气温骤降,Python一键生成御寒指南,助你温暖过冬!!
  4. css如何调整红心样式_css3实现的红心跳动效果
  5. 9大训练营免费开营!阿里云大数据团队的独门绝学全在这了
  6. 从Github开源项目《云阅》所学到的知识
  7. caffe-windows10-matlab2014a安装配置6个问题
  8. 腾讯2016校招试题----------格雷码的实现
  9. 奇奇怪怪的知识增加了,大括号的历史你知道吗?
  10. python入门(7)Python程序的风格
  11. ai人工智能可以干什么_我们可以使人工智能更具道德性吗?
  12. 属性子集选择的基本启发方法_2017.06.29数据挖掘基础概念第二.三章
  13. vue插件开发练习--实用弹窗
  14. 探讨OSPF次优路由选择
  15. Kafka权威指南-学习笔记---第四章
  16. 如何使用dosbox运行程序——步骤详解
  17. Oracle数据库的ORA-00257故障解决过程(转载)
  18. 学会数据可视化,轻松做出企业级可视化报表
  19. kill命令详解kill -9、kill -15区别
  20. 现代信号处理——平稳随机信号

热门文章

  1. 深入解读Linux内存管理系列(7)——伙伴系统
  2. vs 2015查看动态库
  3. CentOS 6系统FreeSwitch和RTMP服务 安装及演示(一)
  4. Linux内存管理之页面回收
  5. 电脑手写输入法_5款好用的拼音输入法软件推荐
  6. cocos2d-x 3.0对label的改进
  7. vue拦截器刷新登陆页面_vue页面跳转拦截器
  8. 求数列的最大子段和java_十大经典排序算法(Java版本)
  9. html 中ip控件,WEB高性能开发(10) - 疯狂的HTML压缩
  10. android tab 选中变色,Android 底部导航栏的Tab选中不变色?