Material Design整理(二)——SnackBar

本文介绍了Material Design中推荐使用的SnackBar,作为Toast的替代品。详细讲述了SnackBar的基本用法,包括如何给右侧添加Action、设置颜色以及自定义视图。特别指出,使用CoordinatorLayout作为SnackBar的父视图可以实现额外的交互效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

github地址 点击打开

简介

这里写图片描述

官方推荐使用SnackBar代替Toast
基本用法: (和Toast很类似)
Snackbar.make(view, "提示内容", Snackbar.LENGTH_LONG).show();
注意:
  1. 第一个数view,任何view都可以,但官方推荐CoordinatorLayout,好处有两个:
    - 可以右滑删除
    - SnackBar弹出时,会移动一些UI元素

  2. SnackBar会一个接一个地显示,不会同时显示多个

给右侧添加Action

即右侧添加按钮和点击事件

Snackbar.make(view, "导航图标", Snackbar.LENGTH_LONG).setAction("关闭哦", new View.OnClickListener() {
    @Override
    public void onClick(View view) {

    }
}).show();

设置颜色

Snackbar snackbar=Snackbar.make(view,"提示",Snackbar.LENGTH_LONG);
// 设置右侧Action按钮颜色
snackbar.setActionTextColor(Color.RED);
// 设置提示框背景色
snackbar.getView().setBackgroundColor(Color.BLUE);  
snackbar.show();

自定义视图

View snackbarview = snackbar.getView();//获取snackbar的View(其实就是SnackbarLayout)

Snackbar.SnackbarLayout snackbarLayout=(Snackbar.SnackbarLayout)snackbarview;//将获取的View转换成SnackbarLayout

View add_view = LayoutInflater.from(snackbarview.getContext()).inflate(layoutId,null);//加载布局文件新建View

LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);//设置新建布局参数

p.gravity= Gravity.CENTER_VERTICAL;//设置新建布局在Snackbar内垂直居中显示

snackbarLayout.addView(add_view,index,p);//将新建布局添加进snackbarLayout相应位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值