Snackbar使用详解

article/2025/9/18 18:56:26

Snackbar

Snackbar是Android Support Design Library库中的一个控件,可以在屏幕底部快速弹出消息,比Toast更加好用。

开发出一个好的产品,友好的交互是不可缺少的,通常给用户提示信息的方式有三种:Dialog、Toast、Snackbar

本文主要讲解Snackbar

Snackbar 是一种针对操作的轻量级反馈机制,常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方。它们出现在屏幕所有层的最上方,包括浮动操作按钮。
它们会在超时或者用户在屏幕其他地方触摸之后自动消失。Snackbar 可以在屏幕上滑动关闭。当它们出现时,不会阻碍用户在屏幕上的输入,并且也不支持输入。屏幕上同时最多只能现实一个 Snackbar。

官方推荐结合CoordinatorLayout使用,有俩个好处:

1.用户可以滑动(右滑)消除掉snackbar。
2.当snackbar出现的时候,布局会移动一些UI元素,比如右下角的悬浮按钮会自动上移。

通常使用的Toast,如果每次弹出的对象都使用其make方法的话,那么多次点击弹出会造成接连弹出(上一个消失后弹出)toast的现象,持续到所有的toast对象弹出。如果使用toast的单例模式,多次点击只会在弹出的Toast消失后有效,继而弹出下一个Toast。对于Snackbar而言,每次使用make方法多次点击弹出的话,会让正在显示的Snackbar对象马上消失,显示新的对象。

基本使用

Snackbar.make(view, message_text, duration).show();
//显示时间duration有三种类型LENGTH_SHORT、LENGTH_LONG和LENGTH_INDEFINITE。时间短是2S,长是3.5S,设置为不确定时,就需要结合setDuration(int)方法一起使用,设定显示时间,否则不会消失//设置可单击
Snackbar.make(v, "test", Snackbar.LENGTH_SHORT).setAction("这是Action", new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(SnackbarActivity.this, "点击了Action", Toast.LENGTH_SHORT).show();}}).show();

修改背景及文字颜色

先看下内部加载布局

    Snackbar snackbar = Snackbar.make(v, "test", Snackbar.LENGTH_SHORT);snackbar.getView().setBackgroundColor(Color.MAGENTA);((TextView) snackbar.getView().findViewById(R.id.snackbar_text)).setTextColor(Color.CYAN);snackbar.show();//修改button的颜色可直接调用setActionTextColor方法

添加图片

    Snackbar snackbar = Snackbar.make(v, "test", Snackbar.LENGTH_SHORT);Drawable img = getResources().getDrawable(R.mipmap.ic_launcher);img.setBounds(0, 0, img.getMinimumWidth() - 20, img.getMinimumHeight() - 80);((TextView) snackbar.getView().findViewById(R.id.snackbar_text)).setCompoundDrawables(img, null, null, null);((TextView) snackbar.getView().findViewById(R.id.snackbar_text)).setGravity(Gravity.CENTER_VERTICAL);snackbar.show();//添加图片的方式还有其他的方式,谷歌官方也不建议往其中加入图片,如果按照以上方式添加图片展示,要想正常展示图片又不撑开布局的高度,需要注意图片的原始大小

总体效果图:

现在你有三种方式可以给用户提示信息,Dialog、Toast和Snackbar,下面我们对这三种方式的使用时机做个总结

Dialog:当提示信息是至关重要的,并且必须要由用户做出决定才能继续的时候,使用Dialog。
Toast:当提示信息只是告知用户某个事情发生了,用户不需要对这个事情做出响应的时候,使用Toast。
Snackbar:以上两者之外的任何其他场景,Snackbar可能会是你最好的选择。

Demo地址:https://github.com/Kriy/AndroidMaterialDesignUI 不断完善中。。。如果觉得还行给个Star!


http://chatgpt.dhexx.cn/article/rbHUxglv.shtml

相关文章

Snackbar使用详解及其相关框架TSnackbar

简述: Snackbar 是 Android design support library 中的一个组件,它的作用和Toast类似,显示吐司,但Snackbar的特别之处在于Snackbar显示的提示信息可以和用户交互,更好地获取用户反馈信息。同时,它显示的吐…

HAWQ:基于 Hessian 的混合精度神经网络量化

HAWQ:基于 Hessian 的混合精度神经网络量化 摘要动机方法海森方法的有效性分析海森矩阵方法推导根据幂迭代求海森矩阵的最大特征值根据海森矩阵最大特征值确定量化精度与顺序 实验结果ResNet20 On CIFAR-10ResNet50 on ImageNetSqueezeNext on ImageNetInception-V3…

HAWQ技术解析(二) —— 安装部署

一、安装规划1. 选择安装介质 HAWQ的安装介质有两种选择,一是下载源码手工编译,二是使用Pivotal公司提供的HDB安装包。源码的下载地址为 http://apache.org/dyn/closer.cgi/incubator/hawq/2.0.0.0-incubating/apache-hawq-src-2.0.0.0-incubating.tar.…

HAWQ取代传统数仓实践(二)——搭建示例模型(MySQL、HAWQ)

一、业务场景 本系列实验将应用HAWQ数据库,为一个销售订单系统建立数据仓库。本篇说明示例的业务场景、数据仓库架构、实验环境、源和目标库的建立过程、测试数据和日期维度的生成。后面陆续进行初始数据装载、定期数据装载、调度ETL工作流自动执行、维度表技术、事…

HAWQ从0.5开始安装说明.包含hadoop和hawq

文档是从自己的云笔记中复制,格式什么的可能有问题.已修复了一遍. 零.前提 一.安装hadoop 1.1下载并复制hadoop2.6.5 1.2编辑系统配置文件 1.3创建hadoop的tmp临时目录 1.4开始修改配置文件 1.5复制hadoop到其他所有节点上 1.6开始初始化hadoop 1.7 如果服务器重启了,…

开源数据库HAWQ,架构调研

hawq的简介 https://cloud.tencent.com/developer/article/1433137 HAWQ,全称Hadoop With Query(带查询Hadoop)。HAWQ使企业能够获益于经过锤炼的基于MPP的分析功能及其查询性能,同时利用Hadoop堆栈。HAWQ是一个Hadoop原生大规模…

apache hawq

为什么80%的码农都做不了架构师?>>> 资料地址: 导航页 What is HAWQ? HAWQ Architecture How HAWQ Manages Resources Understanding the Fault Tolerance Service Table Distribution and Storage Choosing the Table Distribution Pol…

HAWQ技术解析(一) —— HAWQ简介

一、SQL on Hadoop 过去五年里,许多企业已慢慢开始接受Hadoop生态系统,将它用作其大数据分析堆栈的核心组件。尽管Hadoop生态系统的MapReduce组件是一个强大的典范,但随着时间的推移,MapReduce自身并不是连接存储在Hadoop生态系统…

《HAWQ-V3: Dyadic Neural Network Quantization》论文阅读

HAWQ-V3阅读笔记 Abstract 混合精度量化,integer-only, Methodology 只采用均匀量化 权重对称量化,激活非对称量化,对量化步长S采用静态量化,采用per-channel的量化方式 3.1量化矩阵的乘法与卷积(核心…

HAWQ手动安装

HAWQ手动安装及使用手册 1 HAWQ简介 HAWQ 是 Pivotal 设计的一个大规模并行 SQL 分析处理引擎,支持事务处理。HAWQ 将复杂的查询分割成简单的任何,并分发到并行处理系统中的处理单元执行。包括查询规划器、动态管道、前沿互联和查询执行优化器等等。提…

HAWQ上安装PXF插件,并访问HDFS文件数据

1、说明 HAWQ在github上的地址为:https://github.com/apache/hawq 在安装pxf插件之前,可以先查看一下基础软件对应的版本信息:在hawq目录下的pxf/gradle.properties文件中 因我在安装pxf之前,已经把hadoop及hawq安装完&#xff…

HAWQ技术解析(五) —— 连接管理

服务器启动后,还要经过一系列配置,才能被客户端程序所连接。本篇说明如何配置客户端身份认证,HAWQ的权限管理机制,HAWQ最常用的命令行客户端工具psql及与mysql命令行常用命令类比,最后还将列举一些客户端连接HAWQ数据库…

HAWQ-V3: Dyadic Neural Network Quantization论文学习

论文链接 https://arxiv.org/abs/2011.10680 摘要 目前的低精度量化算法往往具有从浮点值到量化整数值的来回转换的隐藏代价。这种隐藏的成本限制了通过量化神经网络所实现的延迟改进。为了解决这个问题,我们提出了HAWQ-V3,一个新的混合精度纯整数量化框…

HAWQ取代传统数仓实践(一)——为什么选择HAWQ

一、HAWQ取代传统数仓实践(一)——为什么选择HAWQ 为了跟上所谓“大数据”技术的脚步,从两年前开始着手实践各种SQL-on-Hadoop技术,从最初的Hive,到SparkSQL,再到Impala,进行了一系列ETL、CDC、…

在centos 7.3上进行Apache HAWQ集群安装部署

一、前期准备工作 1、准备三台物理机,master(192.168.251.8),dataserver1(192.168.251.9),dataserver2(192.168.251.10); 2、目前最新版本是2.4.0, 官网下载地址&…

HAWQ

为了跟上所谓“大数据”技术的脚步,从两年前开始着手实践各种SQL-on-Hadoop技术,从最初的Hive,到SparkSQL,再到Impala,进行了一系列ETL、CDC、多维数据仓库、OLAP的实验。作为一名从业20年以上的DBA,从数据…

HAWQ技术解析(三) —— 基本架构

HAWQ是一个Hadoop原生的SQL查询引擎,它结合了MPP数据库的关键技术和Hadoop的可扩展性。HAWQ在原生的HDFS上读写数据,MPP架构使HAWQ表现出超越其它SQL on Hadoop解决方案的查询性能,Hadoop又为HAWQ提供了传统数据库所不具备的线性扩展能力。 一…

HAWQ技术解析(十三) —— 资源管理

一、HAWQ如何管理资源 HAWQ使用多种机制管理CPU、内存、I/O、文件句柄等系统资源,包括全局资源管理、资源队列、强制资源使用限额等。 1. 全局资源管理 Hadoop通常使用YARN全局管理资源。YARN是一个通用的资源管理框架,为MapReduce作业或其…

HAWQ个人学习笔记(一)——HAWQ介绍

一、什么是HAWQ? HAWQ是Hadoop原生SQL查询引擎,针对分析性的应用。它具有大规模并行处理很多传统数据库以及其他数据库没有的特性及功能,结合了MMP数据库的关键技术优势和Hadoop的可扩展性和便利性。读写依赖于HDFS。 注:Hadoop…

全面讲解光纤、光模块、光纤交换机、光模块组网设计与案例

光纤组网已是当今建筑智能化弱电行业里一种常见的组网方式,组建远距离无线、监控网络时,往往需要使用光纤进行连接通信,使用光纤收发器是经济适用型做法,尤其是在室外的使用。其实光纤收发器不仅可以成对使用,还可以配…