Snackbar使用介绍及自定义

news2025/7/11 2:49:43

Snackbar使用介绍及自定义

  • 前言
  • 一、Snackbar是什么?
  • 二、简单使用
  • 三、进阶使用
    • 参考 [Android 快别用Toast了,来试试Snackbar](https://blog.csdn.net/g984160547/article/details/121269520)
  • 总结


前言

有个UI要显示自定义样式的toast,并居中,然后我就去看toast的源码,发现toast在新版本不支持一些设置了,并推荐使用Snackbar,于是就有了这篇文章

在这里插入图片描述


一、Snackbar是什么?

Snackbar是一种轻量级的通知组件,通常用于在应用程序的底部显示短期的、非持久性的消息或用户反馈。Snackbar可以从底部滑入屏幕,显示一条消息,用户也可以通过点击Snackbar中的按钮来触发相关操作。

右边就是Snackbar的一些相关api

在这里插入图片描述

二、简单使用

以下是一个Snackbar示例,它在用户点击一个按钮后显示:

button.setOnClickListener {
    Snackbar.make(view, "Button clicked", Snackbar.LENGTH_LONG)
        .setAction("Action") {
            // perform some action
        }
        .show()
}

在此示例中,我们使用Snackbar.make()函数创建一个Snackbar对象。第一个参数是包含Snackbar的视图,第二个参数是要显示的文本消息,第三个参数是Snackbar的持续时间。接下来,我们使用setAction()方法添加一个动作按钮,该按钮会在用户点击时触发相关操作。最后,我们调用show()方法将Snackbar显示在屏幕上。

三、进阶使用

可以自定义snackBar的样式:

  /**
     * @param view 自定义布局
     * @param string 文字
     *  @param length 展示时间
     * @return : Snackbar
     * @time 2023/11/1 11:33
     * @Description: toast for new
     */
    fun showSnakeViewWithMessage(view: View, string: String, length: Int = LENGTH_SHORT) {
        val snackBar: Snackbar = Snackbar.make(view, string, length)
        val snackBarView: View = snackBar.view

        //设置布局居中
        val params: FrameLayout.LayoutParams = FrameLayout.LayoutParams(
            snackBarView.layoutParams.width,
            snackBarView.layoutParams.height
        )
        params.gravity = Gravity.CENTER
        snackBarView.layoutParams = params
        snackBarView .setBackgroundResource(R.drawable.shape_snake_night)

        //文字居中
        val message: TextView = snackBarView.findViewById(R.id.snackbar_text)
        //View.setTextAlignment需要SDK>=17
        message.textAlignment = View.TEXT_ALIGNMENT_GRAVITY
        message.gravity = Gravity.CENTER
        message.maxLines = 1
        message.textSize = 40f
        message.setTextColor(Color.WHITE)


        snackBar.show()
    }

调用 Snackbar.make() 方法创建一个 Snackbar,该 Snackbar 的内容为 string 参数指定的文字,展示时间为 length 指定的时间,并指定 Snackbar 显示时所在的视图为 view。
获取 Snackbar 的视图,并按照要求设置视图居中以及更改背景。
获取 Snackbar 视图中的文本内容,将其设置为居中对齐,最大行数设置为 1,字体大小为 40dp,文本颜色为白色。
最后,展示 Snackbar。

参数中的view只是给snackbar预留的展示位置,并不是自定义布局,真正显示可以自定义的是snackBarView

这样就简单的实现了一个类比自定义toast的snackbar,是不是很简单呢?

参考 Android 快别用Toast了,来试试Snackbar

总结

本文介绍了什么是Snackbar以及如何使用这个轻量级的通知组件。在简单使用方面,提供了一个在用户点击按钮后显示Snackbar的示例,同时演示了如何在Snackbar中添加动作按钮。在进阶使用方面,文中详细说明了如何自定义Snackbar的样式,包括居中显示、更改背景和文本样式等。最终,实现了一个类比自定义toast的Snackbar。

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

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

相关文章

APISpace 天气预报查询API接口案例代码

1.天气预报查询API产品介绍 APISpace 的 天气预报查询,支持全国以及全球多个城市的天气查询,包含国内3400个城市以及国际4万个城市的实况数据,同时也支持全球任意经纬度查询,接口会返回该经纬度最近的站点信息;更新频率…

【JavaScript】jQuery 使用案例

使用JS实现猜数字游戏 原生JS版&#xff1a; <!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docum…

视频编码转换技巧:视频批量转码H264转H265,高效且顺畅

随着数字媒体的广泛应用&#xff0c;视频编码转换已成为一种普遍的需求。不同的视频格式和编码标准使得在不同设备上播放视频成为可能&#xff0c;同时也带来了兼容性和传输效率的问题。本文讲解引用云炫AI智剪使视频编码转换技巧&#xff0c;即批量将H264编码转换为H265编码&a…

Java修仙传之神奇的ES(基础使用)

前言 ES是什么&#xff1a;一款强大的搜索引擎ES拓展&#xff1a;elasticsearch结合kibana、Logstash、Beats&#xff0c;也就是elastic stack&#xff08;ELK&#xff09; kibana&#xff1a;可视化 ES&#xff1a;搜索引起 Logstash&#xff1a;数据抓取&#xff0c;数据同步…

Element UI的table不同应用

目录 一、自定义表头 二、纵向表头(动态表头) 2.1、分别拿到表头和表头中日期对应的行数据 2.2、拿到每个日期对应的列数据 一、自定义表头 <el-table-column prop"chu" align"center"><!-- 自定义表头 --><template slot"header…

uniapp 微信小程序 授权隐私流程 网上没有的踩坑记录!

首先什么时候我们需要授权操作&#xff0c;比如下图我们调用这些接口时候首先必须让用户授权&#xff0c;这个政策是2022年2月21日24时起对一下接口增加用户授权操作&#xff0c;详情可以看微信文档 授权的逻辑按照官网的意思是&#xff1a; 这个时候就踩坑了&#xff0c;我把…

Linux命令超详细

Linux基础命令 Linux的目录结构 /&#xff0c;根目录是最顶级的目录了Linux只有一个顶级目录&#xff1a;/路径描述的层次关系同样适用/来表示/home/itheima/a.txt&#xff0c;表示根目录下的home文件夹内有itheima文件夹&#xff0c;内有a.txt ls命令 功能&#xff1a;列出…

高级文本编辑软件 UltraEdit mac中文版介绍说明

UltraEdit mac是一款在Windows系统中非常出名的文本编辑器&#xff0c; UltraEdit for mac对于IT程序猿来说&#xff0c;更是必不可少&#xff0c;可以使用UltraEdit编辑配置文件、查看16进制文件、代码高亮显示等&#xff0c;虽然Mac上已经有了很多优秀的文本编辑器&#xff0…

NOA赛道研究:预计2024年渗透率10%!中算力平台迎窗口期

从基础L2到L3的产业演进中&#xff0c;NOA是至关重要的一步&#xff0c;值得被密切关注。 对于产业链不同位置的玩家&#xff0c;其关注的点有所不同&#xff1a;①对于整车厂来说&#xff0c;根据高工智能汽车监测的数据&#xff0c;基础L2的一体机产品已经趋向于成熟&#x…

看完这个,别说你还找不到免费好用的配音软件

有很多小伙伴还在找配音工具&#xff0c;今天就给大家一次性分享四款免费好用的配音工具&#xff0c;每一个都经过测试&#xff0c;并且是我们自己也在用的免费配音工具 第一款&#xff0c;悦音配音工具 拥有强悍的AI智能配音技术&#xff0c;更专业&#xff0c;完美贴近真人配…

出现身份验证错误,要求函数不受支持windows

现象环境&#xff1a; win10 企业版 mstsc内网远程server2016&#xff0c;出现错误代码&#xff1a; 远程桌面连接出现身份验证错误。要求的函数不受支持。这可能是由于CredSSP加密数据库修正 出现身份验证错误 原因&#xff1a; 系统更新&#xff0c;微软系统补丁的更新将…

armbian 安裝配置教程

1、安装贝锐蒲公英 下载安装包 cd /usr/local/share mkdir pgyvpn wget https://pgy.oray.com/softwares/58/download/1839/PgyVisitor_Raspberry_2.4.0.52291_arm64.deb安装 dpkg -i PgyVisitor_Raspberry_2.4.0.52291_arm64.deb 输入pgyvisitor login/pgyvisitor login -…

全网最全的RDMA拥塞控制入门基础教程

RDMA-CC&#xff08;全网最全的RDMA拥塞控制入门基础教程&#xff09; 文章目录 RDMA-CC&#xff08;全网最全的RDMA拥塞控制入门基础教程&#xff09;DMARDMARDMA举例RDMA优势RDMA的硬件实现方法RDMA基本术语FabricCA&#xff08;Channel Adapter&#xff09;Verbs 核心概念Me…

波浪理论第3波anzo capital昂首资本3个方法3秒确认

要想通过波浪理论在交易中赚取最大利润&#xff0c;确认第三波必不可少&#xff0c;因为第三波通常是趋势中最大和最强的一波&#xff0c;今天anzo capital昂首资本3个方法3秒确认。 首先&#xff0c;第一个确认方法—斜率。 通常&#xff0c;第三波的斜率会比第一波更陡峭&a…

使用 Python 进行自然语言处理第 5 部分:文本分类

一、说明 关于文本分类&#xff0c;文章已经很多&#xff0c;本文这里有实操代码&#xff0c;明确而清晰地表述这种过程&#xff0c;是实战工程师所可以参照和依赖的案例版本。 本文是 2023 年 1 月的 WomenWhoCode 数据科学跟踪活动提供的会议系列文章中的一篇。 之前的文章在…

Linux进程控制——进程创建与退出

我们在用C语言结尾的时候总是会有return 0&#xff0c;但是有些人并不知道它到底有什么意思 还有在进程状态中让进程使用kill命令能够停下来&#xff0c;这些与进程控制有着密切的关系1.进程的创建 fork函数能够在代码中创建一个子进程&#xff0c;我们创建子进程的目的就是为…

电商课堂|5分钟了解电商数据分析完整流程,建议收藏!

账户效果下降&#xff0c;如何能够快速找到问题并优化调整&#xff1f; 相信百分之90%的竞价员都会说&#xff1a;“做数据分析。” 没错&#xff0c;数据分析能够帮助我们快速锁定问题所在&#xff0c;确定优化方向&#xff0c;还可以帮助我们找到流量控制的方向。那么做电商&…

绝地反击:阿里云服务器比腾讯云更优惠!

2023阿里云服务器优惠活动来了&#xff0c;以前一直是腾讯云比阿里云优惠&#xff0c;阿里云绝地反击&#xff0c;放开老用户购买资格&#xff0c;99元服务器老用户可以买&#xff0c;并且享受99元续费&#xff0c;阿腾云亲测可行&#xff0c;大家抓紧吧&#xff0c;数量不多&a…

软信天成:智能数据治理解决方案-干货分享

近年来&#xff0c;数据治理成为备受关注的焦点&#xff0c;越来越多的企业和组织开始注重数据治理&#xff0c;以更好地保护和管理数据。为助力企业有效开展数据治理工作&#xff0c;软信天成基于过往实施案例&#xff0c;梳理出有关数据治理实施的关键要素和心得&#xff0c;…

Techlink TL24G06 网络变压器 10G 基座单端口变压器

功能特征&#xff1a; 1、符合IEEE 802.3标准。 2、符合RoHS。 3、工作温度范围&#xff1a;0C至70C。 4、储存温度范围&#xff1a;-20C至125C。