Android之使用QBadgeView给TabLayout顶部栏设置数量角标,数值可更新

本文主要是介绍Android之使用QBadgeView给TabLayout顶部栏设置数量角标,数值可更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TabLayout搭配ViewPager、Fragement使用可看另一篇文章:
Android中TabLayout+ViewPager+Fragment实现顶部导航栏

本文主要描述给TabLayout的某一栏添加角标,数值可更新:

一、效果

在这里插入图片描述

二、TabLayout使用

1、xml文件中

<com.google.android.material.tabs.TabLayoutandroid:id="@+id/audit_tabLayout"android:layout_width="match_parent"android:layout_height="36dp"android:layout_marginStart="4dp"android:layout_marginEnd="4dp"android:layout_marginTop="3dp"android:layout_marginBottom="3dp"app:tabBackground="@drawable/audit_tab_button_background"app:tabRippleColor = "@android:color/transparent"app:tabIndicatorColor="@color/white"app:tabIndicatorHeight="36dp"app:tabTextColor="@color/color_222222"app:tabSelectedTextColor="@color/color_D32124"app:tabMode="fixed"app:tabPadding="3dp"app:tabIndicator="@color/white"/>

2、标题栏背景(可自定义),圆角灰白色背景

位置:drawable/audit_tab_button_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="6dp"/>
<solidandroid:color="@color/color_F7F7F7"/>
<sizeandroid:width="50dp"android:height="50dp"/>
<strokeandroid:width="2dp"android:color="@color/color_F7F7F7"/>
</shape>

3、子tab样式

位置:layout/tv_tab.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/tv_tab"android:text="sss"android:textStyle="bold"android:textColor="@color/color_222222"android:layout_gravity="bottom"android:textSize="@dimen/sp_21"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

3、Activity中初始化控件时候设置TabLayout标题栏具体内容

(1)绑定控件

 @InjectView(id = R.id.audit_tabLayout,click = true)private TabLayout mAuditTabLayout;

(2)初始化TabLayout栏,,添加两个子tab

//tab1
TabLayout.Tab tab1 = mAuditTabLayout.newTab().setCustomView(R.layout.tv_tab);
TextView tv_tab1 = tab1.getCustomView().findViewById(R.id.tv_tab);tv_tab1.setText("待审核");tv_tab1.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.sp_16));tv_tab1.setTextColor(ContextCompat.getColor(this,R.color.color_D32124));
mAuditTabLayout.addTab(tab1);
//调用自定义方法,给tab1添加数量角标
QBadge(this,mAuditTabLayout.getTabAt(0).view,tab1_number);//tab2
TabLayout.Tab tab2 = mAuditTabLayout.newTab().setCustomView(R.layout.tv_tab);
TextView tv_tab2 = tab2.getCustomView().findViewById(R.id.tv_tab);
tv_tab2.setText(getString(R.string.audit_audited));
tv_tab2.setTextColor(ContextCompat.getColor(this,R.color.color_222222));
tv_tab2.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.sp_16));
mAuditTabLayout.addTab(tab2);

三、红色角标设置

1、红色角标自定义方法

	private static Badge qBadgeView;/*** 右上小红点数量提示* @param context  当前activity* @param view  要显示在那个空间上的View* @param i 数量*/public static void QBadge(Context context, View view, int i){qBadgeView = new QBadgeView(context).bindTarget(view).setBadgeNumber(i)  //角标数值.setBadgeBackgroundColor(ContextCompat.getColor(context,R.color.color_E82326))  //角标背景色.setBadgeTextColor(ContextCompat.getColor(context,R.color.white))  //角标数值字体颜色.setBadgeTextSize(10f,true)  //角标数值字体大小.setBadgeGravity(Gravity.END | Gravity.TOP)  //角标位置(可看源码进行设置).setGravityOffset(40,3,true);  //位置}

2、获取TabLayout单个栏的view,并设置右上角角标

//调用自定义方法,给tab1添加数量角标
QBadge(this,mAuditTabLayout.getTabAt(0).view,tab1_number);

3、更新角标数据

根据项目需求可在对应地方随时调用设置数量方法进行角标数值的更新

int number = 10;
qBadgeView.setBadgeNumber(number);

四、完成,nice!

这篇关于Android之使用QBadgeView给TabLayout顶部栏设置数量角标,数值可更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/242907

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网