你知道android中的Snackbar吗?

本文介绍了Android中的Snackbar功能,它是一种可交互的短消息提示,不同于简单的Toast。文章通过示例展示了如何在CoordinatorLayout中创建并添加操作到Snackbar。

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

你知道android中的Snackbar吗?以下是创建Snackbar UI的方法。

在这里插入图片描述

嘿,怎么了,伙计们。在这篇文章中,我们将讨论 Android 中的 Snackbar。 Snackbar 提供了一种向用户显示短消息的方式。现在你可能会想,我们也可以对toast做同样的事情。但Snackbar不仅仅是Toast。因此,读完这篇文章,您很快就会了解 Snackbar 以及它与 Toast message消息的不同之处。

Android 中的 Snackbar 是什么?

Snackbar提供了一种向用户显示短消息的方式。快捷方式显示在移动设备上的屏幕底部,以及较大设备上的左下角。
Snackbar与 Toast 消息(message)不同,因为您可以通过添加一些操作来使Snackbar具有交互性,但 Toast 消息(message)则不然。
如果您希望Snackbar以最佳方式工作,请将其显示在coordinator layout(协调器布局)中。

这是官方说明:

如果 Snackbars 显示在 CoordinatorLayout 内,效果最佳。 CoordinatorLayout 允许Snackbar启用诸如滑动关闭之类的行为,以及自动移动小部件(如 FloatingActionButton)。
现在让我们看看如何创建一个Snackbars。
我们调用snackbar.make()方法来创建一个snackbar。我们向该方法传递三个参数。第一个参数是保存snackbar的视图,第二个参数是要向用户显示的文本text(message消息),第三个参数是显示snackbar的持续时间。
我们通过调用其 setAction() 方法向snackbar添加操作。
现在让我们看一个例子。
我将创建一个简单的应用程序来演示snackbar。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/coordinator_layout"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Show Snackbar"
        android:textAllCaps="false"
        android:textSize="18sp" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

MainActivity.java

package com.example.snackbarexample;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;
import androidx.coordinatorlayout.widget.CoordinatorLayout;

import com.google.android.material.snackbar.Snackbar;

public class MainActivity extends AppCompatActivity {

    Button button;
    CoordinatorLayout coordinatorLayout;

    @Override
    protected void onCreate(
            Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        coordinatorLayout = findViewById(R.id.coordinator_layout);

        button.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v)
                    {

                        // Call the Snackbar.make() method to Create a snackbar
                        Snackbar snackbar = Snackbar.make(coordinatorLayout, "Action performed", Snackbar.LENGTH_LONG);

                        snackbar.setAction("UNDO",

                                        //We are showing a new message using
                                       // another snackbar when the undo
                                      // button get pressed. This time the snackbar
                                     // contains no any action button.
                                        new View.OnClickListener() {
                                            @Override
                                            public void onClick(View view)
                                            {
                                                Snackbar.make(coordinatorLayout, "Action undone", Snackbar.LENGTH_LONG).show();
                                            }
                                        });

                        snackbar.show();
                    }
                });
    }
}

输出 :

输出 按显示snackbar按钮(button)后。

在这里插入图片描述

按下undo撤消按钮后输出。

在这里插入图片描述

这就是 Android 中的 Snackbar 的全部内容。
谢谢,开心代码每一天。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小云同志你好

谁能书阁下,白首太玄经

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值