Jetpack:014-Jetpack中的小红点

news2024/11/17 13:47:30

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 Badge
    • 2.2 BadgedBox
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了Jetpack库中底部栏相关的内容,本章回中主要介绍 小红点。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的小红点是指位于导航栏图标右侧的小红点,它通常用来显示提示信息,常见的场景是微信底部导航栏中显示小红点,红点内还有数字,用来显示发来的消息数量。本章回中将介绍如何在底部导航栏中添加小红点。

2. 使用方法

小红点通过Badge可组合函数实现,不过还需要设置它与图标的位置,推荐的做法是使用BadgedBox可组合函数,该函数会自动调整小红点的位置,使用小红点位于图标的右上方。这两个可组合函数都提供了相关的参数来控制自己,接下来我们将分别介绍它们各自的参数。

2.1 Badge

  • containerColor参数:用来控制小红点的背景颜色,通常是红色;
  • contentColor参数:用来控制小红点中内容的颜色,通常是白色;
  • content参数:用来存放小红点中的内容,通常使用Text可组合函数;

除了上面介绍的这些参数外,该可组合函数还有一个modifier通用参数,该参数可以修改小红点的大小。

2.2 BadgedBox

  • badge参数:主要用来存放小红点,把Badge可组合函数赋值给它就可以;
  • content参数:主要用来存放小红点附属的图标,通常使用Icon可组合函数给它赋值;

此外,content参数是可组合函数类型,而且是最后一个参数,因此可以使用尾lambda的语法给它赋值。我们将在后面的小节中通过示例代码来演示具体的用法。该函数会自动调整小红点的位置,使小红点位于content参数对应图标的右上方。

3. 示例代码

//设置bar上的图标
icon = {
    //在bar的图标上创建小红点,不过不能调整小红点的位置
    BadgedBox(
        modifier = Modifier.align(Alignment.CenterVertically),
        badge = {
            //依据条件显示小红点:选中时才显示小红点
            if(selectedItem == index)
            Badge(
                //调整小红点的大小
                modifier = Modifier.size(16.dp),
                containerColor = Color.Red,
                contentColor = Color.White,
                content = {Text(text = "6")},
            )else
                null
        },
    ) {
        Icon(imageVector = item.icon, contentDescription = null )
    }
},

上面的示例代码中演示了BadgeBadgedBox两个可组合函数的用法,同时把BadgedBox可组合函数赋值给了NavigationBarItem的icon参数,也就是代码中最开始的icon,而与这个icon真正对应的图标位于代码最后的Icon函数中,代码中的小红点就位于这个ionc的右上方。

此外,我们还在代码中做了判断处理,如果当前图标被选中了才显示小红点,否则不显示小红点,这属于业务逻辑,大家可以依据项目需求自行设定。下面是程序的运行效果图:
在这里插入图片描述

4. 内容总结

最后,我们对本章回的内容做一个总结:

  • 小红点通常附属在某个图标的右上方,主要用来显示提示性消息;
  • 小红点通过可组合函数Badge实现,不过需要手动调整它与图标的位置;
  • 可组合函数BadgedBox可以配合Badge实现小红点,而且会自动调整小红点的位置;

看官们,关于Jetpack中小红点相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1118693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android C/C++ native编程NDK开发中logcat的使用

Android C/C native编程NDK开发中logcat的使用 前言具体用法 前言 在NDK开发过程中,C/C层,需要对代码进行一些调试,日志打印是我们解决异常或崩溃的重要手段,这里我就简单介绍下日志打印三步走。 首先我们先看下官方文档关于日志…

渗透测试--JWT攻防(一)

JWT简介 JWT代表JSON Web Token,它是一种用于安全地在不同实体之间传递信息的开放标准(RFC 7519)。JWT通常用于身份验证和授权领域,以及在网络应用程序和服务之间传递声明(claims)信息。 JWT的常见用途包括…

S7-1200通过CM CANopen模块与KINCO伺服连接

CM CANopen模块简介 CM CANopen模块(Profinet转CANopen)来自瑞典HMS ,由西 门子授权HMS公司开发,与S7-1200完美兼容。 可做为S7-1200与CANopen/CAN设备之间的桥梁,能够联接任意 CANopen或CAN 2.0A设备到SIMATIC S7-1…

聊聊分布式架构10——Zookeeper入门详解

目录 01ZooKeeper的ZAB协议 ZAB协议概念 ZAB协议基本模式 消息广播 崩溃恢复 选举出新的Leader服务器 数据同步 02Zookeeper的核心 ZooKeeper 的核心特点 ZooKeeper 的核心组件 选举算法概述 服务器启动时的Leader选举 服务器运行期间的Leader选举 03ZooKeeper的…

PT100温度传感器

热电阻是中低温区﹡常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热电阻的测量精确度是﹡高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。金属热电阻的感温元件有石英套管十字骨架结构&…

智能洗地机哪个牌子好用?智能洗地机品牌排行榜

为了偷懒人类发明了扫把、拖把等手动清洁工具,随着技术的进步出现了吸尘器、扫地机器人等等智能产品,近几年洗地机又以快速、直接、高效对市场进行了“颠覆”,如何快速在洗地机市场中挑选到适合自己的智能洗地机呢,我们一起来看看…

2023-10-18 LeetCode每日一题(执行 K 次操作后的最大分数)

2023-10-18每日一题 一、题目编号 2530. 执行 K 次操作后的最大分数二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中&#xff1a; 选出一个满足 0 < i < nums.length 的…

node快速搭建一个学习资料共享平台

概述 本文要实现的功能比较简单&#xff1a;1、将想要共享的文件分文件夹的组织起来&#xff1b;2、别人可以通过界面进行搜索&#xff1b;3、可以在线预览或下载文件。基于这样的需求&#xff0c;本文分享通过node如何实现这样的功能。 实现效果 实现 1. node端服务 node端…

QT 操作Windows系统服务

Windows服务是在Windows操作系统上运行的后台应用程序&#xff0c;它们在系统启动时自动启动&#xff0c;并在后台持续运行&#xff0c;不需要用户交互。Windows服务的作用包括但不限于以下几个方面&#xff1a;1. 提供系统功能&#xff1a;许多Windows服务提供了系统级的功能和…

【Java题】实现继承和多态的例子

一&#xff1a;题目 1.员工类Employee&#xff1a; &#xff08;1&#xff09;私有成员变量&#xff1a;姓名&#xff0c;年龄&#xff0c;工资 &#xff08;2&#xff09;提供无参&#xff0c;有参构造 &#xff08;3&#xff09;成员方法&#xff1a;work()方法——员工工作 …

【算法|动态规划No.28】leetcode1312. 让字符串成为回文串的最少插入次数

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

lv8 嵌入式开发-网络编程开发 19 原始套接字

目录 1 链路层原始套接字用法 1.1 利用原始套接字实现类似wireshark的功能 1.2 利用原始套接字实现ping命令 2 网络层原始套接字用法 2.1 TCP原始套接字用法 1 链路层原始套接字用法 Linux中的原始套接字&#xff08;Raw Socket&#xff09;是一种高级套接字类型&#xff…

YOLOv5涨点必备!改进损失函数EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU

目录 一&#xff0c;改进损失函数的作用 二&#xff0c;具体实现 一&#xff0c;改进损失函数的作用 YOLOv5损失函数的作用是衡量预测框与真实框之间的差异&#xff0c;并根据这些差异来更新模型的参数。它帮助模型学习如何准确地检测和定位目标物体&#xff0c;从而提高检测…

【分类讨论】CF1747D

Problem - D - Codeforces 题意 思路 一看这个做法一定就是分类讨论 先判无解 显然&#xff0c;如果区间异或和不是0一定无解 如果区间内全是0&#xff0c;答案一定是0 之后怎么讨论 注意到需要讨论区间长度 如果长度是奇数&#xff0c;那么直接操作即可&#xff0c;答…

【PyTorch】深度学习实践 1. Overview

目录 人工智能概述 课程前置知识 人工智能 问题分类 推理类 预测类 算法分类 传统算法与智能算法 人工智能领域细分 学习系统的发展 基于规则的系统 经典机器学习算法 表示学习方法 维度诅咒 说明 解决方法 第一代 第二代&#xff08;深度学习&#xff09; 传统…

数据结构: 红黑树

目录​​​​​​​ 1.红黑树概念 2.红黑树性质 3.调整 1.如果p和u都是红色&#xff0c;将其都改为黑色即可,然后向上调整 2.如果p红&#xff08;u黑/u不在&#xff09;&#xff0c;这时候左子树两红&#xff0c;于是给右子树一个红&#xff08;旋转变色&#xff09; 2.1…

华为ICT——第四章深度学习和积卷神经

接第三章的末尾&#xff1a; 目录 接第三章的末尾&#xff1a; 1&#xff1a;自适应阈值分割&#xff1a; 2&#xff1a;形态处理&#xff1a; 4&#xff1a;膨胀&#xff1a; 5&#xff1a;腐蚀 6&#xff1a;开运算 7&#xff1a;闭运算 8&#xff1a;特征描述子 9&#xf…

看《软能力》的读后感

最近在图书大夏看了一本书的一部分&#xff0c;书名是《软能力》。本人看到了几个有意思的观点。一是接一些兼职项目。 二是分享自己的技术&#xff0c;让同事能干自己的工作&#xff0c;让自己的工作变得别人也能干&#xff0c;才有机会让自己的职位提升。 三是让手动操作变…

Linux实战——网络连接模式的三种模式

Linux可以分为三种网络模式&#xff1a; 桥接模式 &#xff08;vmnet0) 仅主机模式 (vmnet1) NAT模式 (vmnet8) 当我们下载了vmware之后&#xff0c;在电脑会出现两个虚拟网卡&#xff0c;VMware Network Adapter VMnet1、VMware Network Adapter VMnet8。 可以通过查找 控…