Snackbar的使用

article/2025/9/18 17:16:41

最近看到Material Design中的Snackbar,跟Toast很相似。似乎效果比原生的Toast好写(当然我们也可以自定义Toast成Snackbar的效果),至于Snackbar特别深入的定制目前了解甚少,所以这里简单记录一下常用的。

效果图

下面看一下效果

这里写图片描述

这里面加了个Toast和Snackbar进行对比。可以看到Snackbar中可以实现点击事件,包括两个TextView。Snackbar的原生颜色跟Toast是一样的,这里进行了小改动。
同时在NextActivity里面的Sanckbar弹出后,FloatingActionButton自动上浮。这里简单实现这几个效果。

添加依赖

compile 'com.android.support:design:25.0.1'

代码实现

我们进行对比着看,发现真的与Toast非常相似。

//Toast
Toast.makeText(this, "Click the Toast", Toast.LENGTH_SHORT).show();//Snackbar/*** @param view     The view to find a parent from.* @param text     The text to show.  Can be formatted text.* @param duration How long to display the message.  */
Snackbar.make(mSnackBar, "Click the SnackBar", Snackbar.LENGTH_SHORT).show();

然而还是有些不同,那就是第一个参数,Toast是第一个参数是Context,Snackbar第一个参数是view。从注释中可以看到是一个它所依附的view。

Snackbar中的Action

final Snackbar snackbar = Snackbar.make(mSnackBar, "Click the SnackBar", Snackbar.LENGTH_SHORT);snackbar.getView().setBackgroundColor(ContextCompat.getColor(this, R.color.orange));//set the background color for snackbar
setSnackbarActionTextAllCaps(snackbar, false);//set the action text whether all caps
snackbar.setAction("Cancel", new View.OnClickListener() {@Overridepublic void onClick(View view) {
//      if (snackbar != null && snackbar.isShown()) {
//          snackbar.dismiss();
//      }Snackbar snackbar1 = Snackbar.make(mSnackBar, "Click Cancel", Snackbar.LENGTH_SHORT);setSnackbarMessageTextColor(snackbar1,ContextCompat.getColor(MainActivity.this, R.color.orange));snackbar1.show();}}).setText("Hello")//set the message text.setActionTextColor(ContextCompat.getColor(this, R.color.green)).show();

从代码中可以看到,这里可以实现效果图中对snackbar的定制了。分别有设置背景颜色,设置ActionText的颜色,设置Text的颜色。
注:这里面会发现Snackbar没有提供setTextColor方法,这就是说没法改变Text的颜色了。这里也是根据网上的方法,直接用反射。

与此同时会发现,当ActionText为英文的时候全部是大写。于是就比葫芦画瓢,这里也加了一个方法来设置ActionText的大小写问题。

如果想让Text全部为大写,而又不想手动输入,也可以用此方法,为Text加一个boolean参数改变大小写。

定制

    /*** set the message text color** @param snackbar* @param color    the text color*/public static void setSnackbarMessageTextColor(Snackbar snackbar, int color) {View view = snackbar.getView();TextView textView = (TextView) view.findViewById(R.id.snackbar_text);textView.setTextColor(color);}/*** set the action text whether all caps** @param snackbar the sanckbar* @param allCaps  boolean allCaps,true or false*/public static void setSnackbarActionTextAllCaps(Snackbar snackbar, boolean allCaps) {View view = snackbar.getView();TextView textView = (TextView) view.findViewById(R.id.snackbar_action);textView.setAllCaps(allCaps);}

在写的时候,发现,snackbar.getView后还有很多方法可以使用,比如定制动画等。这里我只是看了一下,并没有去实践。相信有很多方法可以使用。这里截了个图。

这里设置背景颜色的时候就是通过getView后设置的。

这里写图片描述

FloatingActionBar自动上浮

然后说一下FloatingActionBar自动上浮,废话不多说了,直接看布局代码吧

布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/coorinator_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Button
        android:id="@+id/btn_snack_bar"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/blue"android:text="SnackBar"android:textAllCaps="false"android:textColor="@color/white"/><android.support.design.widget.FloatingActionButton
        android:id="@+id/floating_aciton_button"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="bottom|right"android:layout_marginBottom="5dp"/>
</android.support.design.widget.CoordinatorLayout>

代码

Snackbar.make(mCoordinatorLayout, "Click the Button", Snackbar.LENGTH_SHORT).show();

有对Snackbar的使用显示更好效果的也可以交流下。
虽然很简单,这里还是附上Demo,真有需要的可以下载。

Demo下载

下载一

下载二(github)


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

相关文章

Android Snackbar控件

1. Snackbar类 Snackbar是5.0版本出现的控件&#xff0c;类似于Toast&#xff0c;显示在屏幕的底部&#xff0c;包含文字信息与一个可选的操作按钮。需要添加Design依赖库&#xff0c;并且使用Theme.AppCompat主题。 2. 创建Snackbar类 Snackbar利用静态方法make()来创建实…

Android Snackbar简单解析

偶然间发现android中有Snackbar类&#xff0c;还是有点意思&#xff0c;类似于toast。与toast相比&#xff0c;最明显的区别是:Snackbar只能在屏幕底部显示。其他用法基本与toast相似。 先来张效果图吧&#xff0c;静态图&#xff1a; 大概的用法呢&#xff1f;&#xff1a; S…

android Snackbar新控件解析

Dialog和Toast&#xff0c;我们在日常的开发中一定非常熟悉&#xff0c;常常被用来作为Android应用内提示性信息的两种展示方式。然而Google在Design包中又提供了一种新的选择&#xff0c;那就是Snackbar。今天主要介绍Snackbar新控件的使用&#xff0c;以及三种提示信息展示方…

android开发之SnackBar的使用

SnackBar是一个类似于Toast的东西&#xff0c;它也有显示时长&#xff0c;但是比Toast更加灵活&#xff0c;同时&#xff0c;我们还可以给SnackBar设置点击事件&#xff0c;那么我们今天就来看看怎么用吧&#xff01; 先来一张效果图&#xff1a; 这种效果大家可能在一些App中…

Snackbar-Android M新控件

概述 查看官方API Snackbar 是 Android design support library 中的另一个组件。使用 Snackbar&#xff0c;可以在屏幕底部快速的显示一条消息&#xff0c;大体与 Toast 相同&#xff0c;但多了几分灵活性&#xff1a; 一小段时间之后、或者用户与屏幕触发交互&#xff0c;S…

Android Snackbar使用方法及小技巧-design

Snackbar和Toast相似&#xff0c;都是为了给用户提供交互信息&#xff0c;Snackbar是固定在底部的&#xff0c;显示时从下往上滑出 要使用Snackbar&#xff0c;需要在项目的build.gradle中添加依赖 dependencies {compile com.android.support:design:23.4.0 } Snackbar的使用…

Android 快别用Toast了,来试试Snackbar

&#x1f525; 应用场景 Toast提示默认显示在界面底部&#xff0c;使用Toast.setGravity()将提示显示在中间&#xff0c;如下&#xff1a; Toast toast Toast.makeText(this, str, Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();运行在在Android …

Android---简易Snackbar

目录 Snackbar 简介 Snackbar 特性 完整Demo Snackbar 简介 Snackbar 是 Android5.0 新特性---Material Design 中的一个控件&#xff0c;用来代替 Toast。Snackbar 就是一个类似 Toast 的快速弹出消息提示的控件&#xff0c;手机上显示在底部&#xff0c;大屏幕设备显示在左…

Android Snackbar基本使用

概述 Snackbar 是 Android 5.0 新特性——Material Design 中的一个控件&#xff0c;用来代替 Toast &#xff0c;Snackbar与Toast的主要区别是&#xff1a;Snackbar可以滑动退出&#xff0c;也可以处理用户交互&#xff08;点击&#xff09;事件。 样式 使用 Snackbar需要配…

Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?

转载请注明出处&#xff1a;http://blog.csdn.net/guolin_blog/article/details/51336415 本文同步发表于我的微信公众号&#xff0c;扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注&#xff0c;每天都有文章更新。 今天给大家带来一篇简单易懂的微技巧文章&#xff0c;并没…

Android开发——Snackbar使用详解

Snackbar是Android支持库中用于显示简单消息并且提供和用户的一个简单操作的一种弹出式提醒。当使用Snackbar时&#xff0c;提示会出现在消息最底部&#xff0c;通常含有一段信息和一个可点击的按钮。下图是Gmail中删除一封邮件时弹出的Snackbar&#xff1a; 在上图中&#xf…

Android Snackbar的使用

在项目中肯定有不少地方用到Toast&#xff0c;但是在项目各种各样的需求上&#xff0c;Toast已经不能满足我们的需求了。 其实google在Android 5.0的时候就推出了Snackbar&#xff0c;它算是Toast的一个进阶控件。 它是Material Design中的一个控件&#xff0c;与Toast的最大区…

Snackbar的使用和顶部Snackbar实现

下载链接&#xff1a;Snackbar顶部显示 也可以module的形式直接导入使用 &#xff1a;module导入教程 谷歌在android 5.0 发布后&#xff0c;随后公布了design库和设计理念&#xff08;需翻墙&#xff09;&#xff0c;意图在于规范安卓app的风格&#xff0c;类似而不仅仅ios的…

SnackBar 简单使用

1.简介 Snackbar是Android Support Design Library库中的一个控件&#xff0c;可以在屏幕底部快速弹出消息&#xff0c;比Toast更加好用.可以添加点击行为。多用于结合协调布局使用&#xff08;CoordinatorLayout&#xff09;。 implementation com.android.support:design:28…

MaterialDesign之Snackbar学习笔记

近期实在太忙了&#xff0c;看到好的文章先转载&#xff0c;后续自己慢慢消化吧&#xff01; 转载 http://www.jianshu.com/p/cd1e80e64311#rd 没时间解释了&#xff0c;快使用Snackbar!——Android Snackbar花式使用指南 字数2405 阅读1628 评论4 喜欢54 本文是在《Design…

Snackbar使用详解

Snackbar Snackbar是Android Support Design Library库中的一个控件&#xff0c;可以在屏幕底部快速弹出消息&#xff0c;比Toast更加好用。 开发出一个好的产品&#xff0c;友好的交互是不可缺少的&#xff0c;通常给用户提示信息的方式有三种&#xff1a;Dialog、Toast、Sn…

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

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

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

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

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

一、安装规划1. 选择安装介质 HAWQ的安装介质有两种选择&#xff0c;一是下载源码手工编译&#xff0c;二是使用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数据库&#xff0c;为一个销售订单系统建立数据仓库。本篇说明示例的业务场景、数据仓库架构、实验环境、源和目标库的建立过程、测试数据和日期维度的生成。后面陆续进行初始数据装载、定期数据装载、调度ETL工作流自动执行、维度表技术、事…