Snackbar
1.简介
位于底部的提示View
支持侧滑消失
同一时间只有一个
不支持跨Activity展示
国内使用率很低
2.基础使用
2.1 基本展示
Snackbar.make(view, "Content", Snackbar.LENGTH_LONG).show()
2.2 设置点击事件
注意不设置点击事件回调,点击按钮的文字不会展示出来
.setAction("click") {Log.d("TAG", "click")}
2.3 调整显示位置
会在设置的 View 上方展示
.setAnchorView(R.id.flb_main)
如果不设置 AnchorView ,默认都是在底部展示的,那么有方法展示在中间么?
private static ViewGroup findSuitableParent(View view) {ViewGroup fallback = null;do {if (view instanceof CoordinatorLayout) {// We've found a CoordinatorLayout, use itreturn (ViewGroup) view;} else if (view instanceof FrameLayout) {if (view.getId() == android.R.id.content) {// If we've hit the decor content view, then we didn't find a CoL in the// hierarchy, so use it.return (ViewGroup) view;} else {// It's not the content view but we'll use it as our fallbackfallback = (ViewGroup) view;}}if (view != null) {// Else, we will loop and crawl up the view hierarchy and try to find a parentfinal ViewParent parent = view.getParent();view = parent instanceof View ? (View) parent : null;}} while (view != null);// If we reach here then we didn't find a CoL or a suitable content view so we'll fallbackreturn fallback;}
源码中会根据设置的view去找到最近的一个CoordinatorLayout,如果找不到就去找
FrameLayout 用来备用,直到找到顶层的 id 为 android.R.id.content 的 Fragment,
所以如果在布局中加入一个 CoordinatorLayout 完全可以让Snackbar展示在中间。
2.5 调整展示时间
//下一个Snackbar出现,或者调用dismiss会消失public static final int LENGTH_INDEFINITE = -2;//短时间 1500 实际消失时间还会加上动画消失时间public static final int LENGTH_SHORT = -1;//长时间 2750 实际消失时间还会加上动画消失时间public static final int LENGTH_LONG = 0;//SnackbarManagerprivate static final int SHORT_DURATION_MS = 1500;private static final int LONG_DURATION_MS = 2750;
2.6 调整颜色
//背景颜色
.setBackgroundTint()
//点击按钮颜色
.setActionTextColor()
//文字颜色
.setTextColor()
2.7 监听消失事件
.addCallback(object: BaseCallback<Snackbar>() {})
2.8 文字超过了会如何展示呢?
内容最多2行,超过会省略
按钮文字没有限制行数,短字数的情况下和内容在一行展示,多了会显示在内容下方。
如果想click展示完全可以扩大显示宽度
.setMaxInlineActionWidth(100)
总结
使用还是比较少的,常见于 Android 项目的 Demo
相关文章:
Snackbar
1.简介 位于底部的提示View 支持侧滑消失 同一时间只有一个 不支持跨Activity展示 国内使用率很低 2.基础使用 2.1 基本展示 Snackbar.make(view, "Content", Snackbar.LENGTH_LONG).show()2.2 设置点击事件 注意不设置点击事件回调,点击按钮的文字不…...
HummerRisk 使用教程:主机检测
1. 概述 HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生环境的安全和治理问题。核心能力包括混合云的安全治理和容器云安全检测。 本文将介绍HummerRisk中的主机检测部分功能,包括如何管理主机、管理凭证,以及使用主机检测规…...
【Arduino无线气象站项目】
【Arduino无线气象站项目】 1. 概述2. Arduino无线气象站电路图3. 定制设计电路板4. Arduino无线气象站代码5. 总结1. 概述 使用DHT22传感器测量室外温度和湿度,并使用NRF24L01收发器模块将这些数据无线发送到室内机。在室内机,还有另一个用于测量室内温度和湿度的DHT22传感…...
HTTP详解
一,什么是HTTPHTTP(全称为“超文本传输协议”),是一种应用非常广泛的应用层协议,之前在《初识网络原理》的博客(初识网络原理_徐憨憨!的博客-CSDN博客)中,有详细讲解过TCP/IP五层模型,其中应用层描述了数据…...
cpufreq--处理器功耗控制
cpu 功耗控制 参考框架: cpufreq 框架。 cpufreq 框架提供 cpu 功耗管理接口,以及功耗管理方案。 用户可以通过功耗管理接口(以文件形式提供)来选择管理方案,并设置相关参数。 管理方案的实现则由具体的驱动来完成。…...
做技术,最忌讳东张西望
又好长时间没更新,研二了,忙着做实验、写论文、发论文,再加上给我导做一些事情(都习惯了,以前很不爽的事情,现在居然能这么平静的说出来)。 但这不是我今天说的重点,而是另外一件事…...
Oracle 常见报错问题汇总
Oracle 常见报错问题汇总 报错:ORA-01017: invalid username/password; logon denied报错:ORA-01031: insufficient privileges报错:"ORA-01034: ORACLE not available" 和 "ORA-27101: shared memory realm does not exist"报错:“ORA-00119: invalid…...
单片机连接有人云上传数据
首先采用有人物联网的模块 ,连接有人云平台服务器 看云平台相关配置配置连接设备在线后 添加设备添加设备完成后 添加变量模板 变量模板的添加方式如下 :本次采用的是标准的MODbus 协议添加一个温度变量温度变量如下显示云平台 下发数据 采集01 03 00 00…...
系统集成项目管理工程师:第18章项目风险管理学习笔记
第18章项目风险管理 一、目录 18.1 风险概述 18.1.1 风险的定义 18.1.2 风险的分类 18.1.3 风险的性质 18.2 项目风险管理 18.3 规划风险管理 18.3.1 规划风险管理的输入 18.3.2 规划风险管理的工具与技术 18.3.3 规划风险管理的输出 18.4 识别风险...
【笔试强训选择题】Day3.习题(错题)解析
文章目录 前言一、Day3习题(错题)解析二、Day3习题(原题)练习总结前言 今天我们将进入到第三天的练习,希望能一直坚持下去,不断反思总结错误,得到进步; 一、Day3习题(错…...
基于GPT-4的免费代码生成工具
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...
Android开发的这一年里,Jetpack的Room源码是怎么狠狠奖励我的?
简述 Android Jetpack的出现统一了Android开发生态,各种三方库逐渐被官方组件所取代。Room也同样如此,逐渐取代竞品成为最主流的数据库ORM框架。这当然不仅仅因为其官方身份,更是因为其良好的开发体验,大大降低了SQLite的使用门槛…...
推荐一款卸载软件的小工具-《UninstallToo》
目录 UninstallToo介绍 UninstallToo下载 UninstallToo使用 总结 UninstallToo介绍 Uninstall Tool 是一款可以用来替代“添加/删除程序”的工具。它允许您显示隐藏的安装程序,按名称过滤已安装程序的列表,强行写在程序,浏览注册表项目&a…...
线程池——JUC随记8
线程池使用方式 1、一池N线程(Executors.newFixedThreadPool(n)) import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ExecutorDemo {public static void main(String[] args) {ExecutorService execu…...
SpringCloudAlibaba微服务调用组件-Feign
SpringCloudAlibaba微服务调用组件-Feign 本项目代码与笔记已存放在Gitee仓库 地址: 代码,笔记 文章目录SpringCloudAlibaba微服务调用组件-Feign1. 什么是Feign1.1 优势2. Spring Cloud Alibaba快速整合OpenFeign1)引入依赖2)编写…...
高效学习方法论
2023.03.17 《程序员的三门课:技术精进、架构修炼、管理探秘 / 于君泽等著》学习笔记 学会学习一、高效学习的方法1、管理好自己的目标1)评估能力2)制定目标3)评估目标2、利用好碎片时间3、在同一时间只做一件事二、高效学习的途径…...
C语言结构体(一篇学会)
C语言结构体 在C语言中,结构体是一种自定义的数据类型,它允许用户将不同类型的数据组合在一起。结构体由多个变量组成,这些变量称为结构体的成员。结构体成员可以是不同的数据类型,如整数、浮点数、字符或其他结构体等。 结构体…...
嵌入式软件开发之Linux下C编程
目录 前沿 Hello World! 编写代码 编译代码 GCC编译器 gcc 命令 编译错误警告 编译流程 Makefile 基础 何为 Makefile Makefile 的引入 前沿 在 Windows 下我们可以使用各种各样的 IDE 进行编程,比如强大的 Visual Studio。但是在Ubuntu 下如何进…...
普通Java工程师 VS 优秀架构师
1 核心能力 1.1 要成为一名优秀的Java架构师 只懂技术还远远不够,懂技术/懂业务/懂管理的综合型人才,才是技术团队中的绝对核心。 不仅仅是架构师,所有的技术高端岗位,对人才的综合能力都有较高的标准。 架构路线的总设计师 规…...
Java:SpringBoot实现ApplicationEvent事件的监听和发布
通过发布订阅模式实现数据的异步处理,比如异步处理邮件发送 新建SpringBoot项目 项目结构 . ├── pom.xml └── src└── main├── java│ └── com│ └── example│ └── demo│ ├── Application.java│ …...
为AI智能体注入n8n技能库:提升自动化工作流构建效率
1. 项目概述:为AI智能体注入n8n工作流构建的专业“基因库”如果你和我一样,在过去一年里频繁地与各种AI编程助手(比如Cursor、Claude Desktop)打交道,试图让它们帮你构建复杂的n8n自动化工作流,那你一定经历…...
YAPI MCP PRO:基于MCP协议将YApi无缝集成AI代码编辑器的实践指南
1. 项目概述与核心价值如果你和我一样,每天都要在YApi里翻找接口文档、复制粘贴路径和参数,然后切回代码编辑器去写调用逻辑,那这个循环一定让你感到疲惫。更别提当后端同事更新了接口,你还在用旧参数调试的尴尬场景。YAPI MCP PR…...
硬件设计包管理器VPM:提升Verilog/SystemVerilog模块复用效率
1. 项目概述:为什么硬件设计需要一个“包管理器”? 如果你和我一样,在数字电路设计领域摸爬滚打了几年,尤其是在ASIC或FPGA项目中,一定对下面这个场景深恶痛绝:为了在项目中复用某个开源的FIFO模块或者一个…...
目标导向DNN分割:实现边缘AI低能耗推理的动态聚焦技术
1. 项目概述:当边缘计算遇上深度学习分割这几年,我一直在边缘计算和嵌入式AI的交叉领域里折腾。从早期的树莓派跑YOLO,到后来的Jetson Nano部署语义分割模型,一个核心的矛盾始终横在面前:模型精度与推理能耗的拉锯战。…...
OpenClaw技能生态全解析:从平台集成到AI记忆,打造高效AI助手
1. 项目概述与生态定位如果你最近在折腾AI Agent,尤其是那个能24/7运行、号称“你的私人AI助手”的OpenClaw,那你大概率已经一头扎进了ClawHub这个技能市场。面对里面成千上万个技能,从飞书钉钉集成到浏览器自动化,从文档处理到自…...
从数据到判断——Infoseek舆情分析师的价值锚点
随着自然语言处理和异常检测技术的持续进步,Infoseek这类舆情监测系统的自动化程度越来越高。它可以在几秒钟内完成对全网数百万条信息的初步分析,标记出情绪异常波动的区域,甚至自动生成事件发展的时间线。一个自然的问题随之浮现࿱…...
机器学习高效工作流:ml-retreat深度工作法实战指南
1. 项目概述:当机器学习遇上“静修”最近在GitHub上闲逛,发现了一个挺有意思的项目,叫hesamsheikh/ml-retreat。初看这个标题,你可能会有点摸不着头脑:“ml”是机器学习(Machine Learning)没跑&…...
使用技巧(五):插件装了 50 个还是裸奔?Claude Code 三大市场只装一个就够了,这款 165K Star
Claude Code 插件装了 50 个还是裸奔?三个市场只装一个就够了 Windows/macOS/Linux Claude Code 2.x 2026-05-09 一、你装了一堆插件,Claude 还是不按规矩干活? 有没有经历过这些: 装了 10 个 Skill,Claude 还是跳…...
CANN/ops-math 广播算子
BroadcastTo 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列…...
CANN/pypto循环展开函数文档
pypto.loop_unroll 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品√…...
