Material Design 中 Snackbars 的使用方法详解

Material Design 是 Google 推出的一种全新的设计语言,旨在提高用户体验和视觉效果,其中 Snackbar 是其中一种重要的组件,用于快速通知用户某种操作结果。这篇文章将详细介绍 Material Design 中 Snackbars 的使用方法,包括如何创建、设计和应用。

Snackbars (提示条)是什么?

Snackbar 是一个视觉小组件,通常用于在屏幕底部展示短暂的用户信息。一般情况下,Snackbar 会出现在当前活动的前景 UI 的上层,避免遮挡 MainContent。

Snackbar 可以用于以下场景:

  • 显示短暂的用户信息;
  • 反馈某个操作的结果;
  • 提醒用户操作时的错误信息;
  • 提示用户在应用中的一些行为,例如某个设置项的状态等。

下面是一个简单的示例,它展示了 Snackbar 的外观和定位方式:

如何创建 Snackbar?

在创建 Snackbar 之前,我们需要确保在 build.gradle 文件中添加了 Material Design 库的依赖:

------------ -
  -------------- --------------------------------------------
-

接下来,我们需要执行以下步骤来创建 Snackbar:

  1. 创建 SnackBar 实例
-------- ---------- - ------------------- ----- ---------- -----------------------

上面的代码中,make() 方法接收三个参数:

  • 用于显示 Snackbar 的 View;
  • 展示的文本内容;
  • Snackbar 显示的时长,可选参数 Snackbar.LENGTH_SHORT 或 Snackbar.LENGTH_LONG。
  1. 设置 Snackbar 的行为
---------------------------- ------------------

setAction 方法用于设置当用户点击 Snackbar 上的操作按钮时的动作。这个方法有两个参数:

  • 要显示的操作的文本;
  • 按钮的点击事件监听器。
  1. 显示 Snackbar
------------------

如何自定义 Snackbar?

为了自定义 Snackbar,我们需要创建一个新的布局文件,并将其复制到应用的布局文件中。下面是一个简单的示例布局文件:

------------- 
    ----------------------------------------------------------
    -----------------------------------
    ------------------------------------
    --------------------------------
    ----------------------
    --------------------------------------------
  -
    ----------
        -------------------------------
        -------------------------------
        -----------------------------------
        ------------------------------------
        ---------------------------
        ------------------------------
    --
    ---------
        --------------------------
        -----------------------------------
        ------------------------------------
        -----------------------
        ----------------------------------------
        ---------------------- --------
        -
    -----------
---------------

接着,加载这个布局文件,并将其放到 Snackbar 中:

-------- -------- - ------------------------------------------------- --- ----------------------

---- ------ - -------------------
-------- -------- - -------------------------------------------
--------------------- -----------
-----------------------------------
--------------------------------------


----------------

如何应用 Snackbar?

Snackbar 除了可以作为反馈工具之外,还有许多应用场景,下面是几种常见的情况:

1. 与 FloatingActionButton 协同

Snackbar 通常与 FloatingActionButton 搭配使用。例如,我们可以在用户单击 FloatingActionButton 时显示 Snackbar:

---------------------------- ---------------------- -
    ---------
    ------ ---- ------------ ----- -
        ------------------- ----- ---------------------- -----------------------------
    -
---

2. 显示长期操作的结果

通过 Snackbar,我们可以告诉用户某一项操作是否已成功或失败。例如,在使用网格视图下载图像时,我们可能想要在图片下载完成后显示 Snackbar。

3. 替代 AlertDialog 窗口

Snackbar 可以用于代替 AlertDialog 窗口。例如,我们可能想在用户单击 FloatingActionButton 时显示可用选项:

-------- -------- - ----------------------------------------------------- --- ----------------------
------------------------ --- ---------------------- -
    ---------
    ------ ---- ------------ ----- -
        -- --------- ------ -----
    -
---
----------------

总结

Snackbar 是 Material Design 的一种组件,非常适合用作快速提示和操作反馈。本文详细介绍了如何创建和自定义 Snackbar,以及如何在常见情景中使用它。快去试试吧!

示例代码

本文代码参考了这里

完整的示例代码也可在我的 Github 上查看:Material Design Snackbar Demo

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6475a0e1968c7c53b02a3cc5


猜你喜欢

  • 优化 Server-sent Events 应用性能的经验分享

    Server-sent Events(简称 SSE)是一种 JavaScript API,用于在客户端与服务器之间实现单向的实时消息推送。它可以极大地提高应用程序的性能和响应速度,但如果不做好优化,也...

    1 年前
  • babel-plugin-transform-define 定义全局变量的使用方法

    在前端开发中,我们经常需要在不同的JS文件中共享同一个全局变量。但是,由于JS没有像其他语言一样的导入导出机制,导致我们在这种情况下要么需要手动在每个文件中定义该全局变量,要么需要借助第三方库来实现。

    1 年前
  • Sequelize 使用 include 查询关联表的方法

    前言 Sequelize 是一款 Node.js 的 ORM 框架,提供了强大的对数据库的操作能力,同时支持多种数据库(MySQL、Postgres、SQLite、MSSQL)。

    1 年前
  • ECMAScript 2021 中的 BigInt 与 Number 的互换

    在 ECMAScript 2021 中,我们迎来了 BigInt 类型,它可以表示超过 Number 类型所能处理的安全整数范围。BigInt 类型可以表示任意大的整数,并支持基本的算术运算和位运算。

    1 年前
  • Docker 镜像保障良好运行的最佳实践

    什么是 Docker 镜像 Docker 是一种虚拟化技术,在 Docker 中,一个图像(Image)就是一个包含了应用程序运行所需的一切组件的文件系统,包括代码、运行时库、系统工具等等。

    1 年前
  • Serverless 构建大规模时序数据分析平台

    简介 随着云计算和物联网技术的迅速发展,人们对于数据分析和处理的需求越来越高。然而,传统的数据处理方式往往需要大量的硬件资源和复杂的维护管理,同时很难适应快速变化的场景。

    1 年前
  • 响应式设计中 CSS 媒体查询的应用实践

    在现代 Web 开发中,响应式设计(Responsive Design)已经成为了不可缺少的一部分。在不同的设备上,网站可以灵活地做出自适应的布局和样式,让用户体验更加友好,同时也为开发者带来更大的挑...

    1 年前
  • React+Webpack 打造 SPA 应用

    单页应用(SPA)已经成为了 Web 应用开发中的一个重要概念。它将所有的页面都作为单页面加载,而不是像传统的多页应用(MPA)在每个页面间进行路由跳转。React 是一个流行的前端框架,它能够高效地...

    1 年前
  • 使用 Koa2 构建 NodeJS 实时聊天室应用

    在前端开发中,有时需要使用实时通信来实现聊天室、在线游戏等功能。本文将介绍如何使用 Koa2 框架构建实时聊天室应用。 第一步:搭建环境 使用 NodeJS 开发实时聊天室应用,首先需要在本地搭建开发...

    1 年前
  • RxJS mergeMap 与 switchMap 的详解及应用

    RxJS mergeMap 与 switchMap 的详解及应用 在 RxJS 中,我们经常会用到 mergeMap 和 switchMap 这两个操作符,它们分别用于将一个 Observable 转...

    1 年前
  • Enzyme 在 React 项目中 mock API 的最佳实践

    Enzyme 在 React 项目中 mock API 的最佳实践 React 是一个非常流行的前端 JavaScript 框架,而 Enzyme 是其中最受欢迎的测试工具之一,用于构建 React ...

    1 年前
  • 无障碍模式:如何设计适宜各类用户操作的 UI

    随着互联网技术的快速发展,用户对于产品的需求也越来越高。在用户层面上,早期的产品设计往往存在一些问题,例如针对不同人群的用户体验方面的考虑不足。为了满足各类用户的操作需求,无障碍模式的概念被逐渐引入到...

    1 年前
  • PM2 在 Nginx 下的配置指南

    简介 PM2 是一个 Node.js 进程管理工具,可以让我们轻松地管理 Node.js 应用程序的进程、日志和服务器监控。Nginx 是一个高性能的 HTTP 和反向代理服务器,经常被用来作为后端服...

    1 年前
  • 解决 Fastify 应用内存泄漏问题

    Fastify 是一个快速、低开销、可扩展的 Node.js Web 框架。然而,在使用 Fastify 进行开发时,会遇到内存泄漏的问题。在本文中,我们将探讨如何解决 Fastify 应用的内存泄漏...

    1 年前
  • ECMAScript 2019 (ES10) 规范详解

    ECMAScript是JavaScript的官方标准,它定义了一些基本的规则、语法和函数库,用于指导开发人员编写跨浏览器的JavaScript应用程序。ES2019(ES10)是ECMAScript的...

    1 年前
  • Jest 测试使用 WebSocket 的应用

    Jest 测试使用 WebSocket 的应用 WebSocket 是一种全双工通信协议,它可以在客户端和服务器之间实现双向通信,是一种常用的实时消息传递技术。在前端开发中,WebSocket 经常用...

    1 年前
  • Tailwind 安装遇到问题的一些解决方式

    在前端开发中,Tailwind CSS 是一种非常流行的 CSS 框架,它提供了大量的 CSS 类名供开发者使用。但是,在安装 Tailwind 的过程中,可能会遇到一些问题。

    1 年前
  • GPU 加速技术在深度学习中的应用

    随着深度学习技术的不断发展,研究者们越来越倾向于使用 GPU(Graphics Processing Unit)作为运算平台,以加快深度学习算法的训练速度,并解决训练过程中的瓶颈问题。

    1 年前
  • 解决 ES9 fetch API 在老 IE 浏览器中的问题

    前端开发已经不再是简单的 HTML、CSS、JavaScript 页面的搭建,现在的前端需要不断学习和更新知识才能适应不断变化的技术和需求。其中运用 fetch API 进行数据请求已经成为了前端开发...

    1 年前
  • 使用 Mocha 和 Chai 测试 AngularJS

    前言 AngularJS 是一款流行的 JavaScript 框架, 它允许我们创建复杂的单页应用程序. 随着应用程序变得更加庞大, 对其进行测试变得尤为重要. 在本文中, 我们将探讨如何使用 Moc...

    1 年前

相关推荐

    暂无文章