<Android 基础(十一)> Snackbar

介绍

Snackbars provide lightweight feedback about an operation. They show a brief message at the
bottom of the screen on mobile and lower left on larger devices. Snackbars appear above all other
elements on screen and only one can be displayed at a time.

They automatically disappear after a timeout or after user interaction elsewhere on the screen,
particularly after interactions that summon a new surface or activity. Snackbars can be swiped
off screen.

Snackbars can contain an action which is set via
{@link #setAction(CharSequence, android.view.View.OnClickListener)}.
To be notified when a snackbar has been shown or dismissed, you can provide a {@link Callback} via {@link #setCallback(Callback)}.

翻译:
Snackbar为用户的一个操作提供轻量级的反馈,他会在手机屏幕的底部或者是大设备的左下方显示一个简洁的消息。Snackbar出现在屏幕所有元素的上面,显示一小会。
Snackbar显示一会后会自动消失,用户点击其他地方的时候也会消失,尤其,当显示一个新的界面的时候,Snackbar会滑出界面。
Snackbar 可以通过setAction(CharSequence, android.view.View.OnClickListener) 来设置一个点击事件,同时也可以通过setCallback(Callback)来监听snackbar的显示和消失。

类介绍

Snackbar中Public属性列表
这里写图片描述

方法或接口意义
Callback抽象函数用来设置SnackBar显示和消失的回调
make创建SnackBar
setAction设置ActionView的响应事件
show显示SnackBar
dismiss收起SnackBar
setActionTextColor设置ActionView的字体颜色
setText设置TextView的显示内容
setDuration设置SnackBar的显示时间
getDuration获取SnackBar的显示时间
getView获取SnackBar的View视图
setCallback设置显示和消失的事件监听
isShown是否已经显示
shownOrQueued是否已经显示或者在队列中等待显示

整理而言的话,感觉Snackbar就是Toast的一个升级版本,使用的方式和Toast也比较相似。


创建Snackbar之后一定要记得调用show()方法


具体使用

–代码内容–

package mraz.com.snackdemo;

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    RelativeLayout rootLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rootLayout = (RelativeLayout) findViewById(R.id.root_layout);

        Button shortButton = (Button) findViewById(R.id.short_button);
        Button longButton = (Button) findViewById(R.id.long_button);

        shortButton.setOnClickListener(this);
        longButton.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.short_button:
                final Snackbar shortSnackbar = Snackbar.make(rootLayout, " Short SnackBar", Snackbar.LENGTH_SHORT);
                shortSnackbar.setAction("Click", new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                Toast.makeText(rootLayout.getContext(), "Shoort Snackbar onClick", Toast.LENGTH_SHORT).show();
                            }
                        }
                );
                shortSnackbar.setActionTextColor(getResources().getColor(R.color.colorPrimaryDark));
                shortSnackbar.show();

                break;

            case R.id.long_button:
                Snackbar longSnackbar = Snackbar.make(rootLayout, " Long SnackBar", Snackbar.LENGTH_LONG);
                longSnackbar.setCallback(new SnackCallback());
                longSnackbar.show();
                break;
        }
    }

    class SnackCallback extends Snackbar.Callback {
        @Override
        public void onDismissed(Snackbar snackbar, int event) {
            super.onDismissed(snackbar, event);
            Toast.makeText(rootLayout.getContext(), "SnackBar onDismissed", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onShown(Snackbar snackbar) {
            super.onShown(snackbar);
            Toast.makeText(rootLayout.getContext(), "SnackBar onShown", Toast.LENGTH_SHORT).show();
        }
    }
}

实际效果

这里写图片描述

转载于:https://www.cnblogs.com/lanzhi/p/6467194.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值