zoukankan      html  css  js  c++  java
  • <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();
            }
        }
    }
    

    实际效果

    这里写图片描述

  • 相关阅读:
    [软件工程 2018西北师范大学]实验一 软件工程准备 评分
    【集美大学1411_助教博客】助教总结
    【集美大学1411_助教博客】团队作业10——项目复审与事后分析(Beta版本)
    【集美大学1411_助教博客】团队作业9——测试与发布(Beta版本)
    【集美大学1411_助教博客】团队作业8——第二次项目冲刺(Beta阶段)
    【集美大学1411_助教博客】alpha阶段后 成绩
    Javascript 异步加载详解
    复选框,全选或者全不选
    Java六大必须理解的问题
    写了一个Java的简单缓存模型
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467194.html
Copyright © 2011-2022 走看看