王学岗自定义吐司和SnackBar

SnackBar:间于Toast和dialog之间的控件,是为了弥补吐司和dialog,注意,toast无法与用户交互,dialog虽然可以,但dialog会使其他的控件无法获取焦点;SnackBar解决了这两个控件的缺点;
下面我们自定义一个吐司

package com.example.acer.tablayouttest;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


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

    }
    public void aa(View vew){
        Toast toast=new Toast(this);
        LayoutInflater inflater= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view=inflater.inflate(R.layout.activity_main,null);
        TextView textView= (TextView) view.findViewById(R.id.tv);
        textView.setText("我自己定义的吐死");
        //设置吐死的布局
        toast.setView(view);
        //设置吐死的时长
        toast.setDuration(Toast.LENGTH_LONG);
        toast.show();
    }
}

使用SnackBar需要导入design包
这里写图片描述
看下代码

 package com.example.acer.tablayouttest;

import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.BaseTransientBottomBar;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {


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

    }
    public void aa(View vew){
//        vew是锚点
        Snackbar snackbar=Snackbar.make(vew,"是否开启",Snackbar.LENGTH_LONG);
        snackbar.setAction("确定", new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.i("zhang_xin","asdfg");
            }
        });
       snackbar.setActionTextColor(Color.RED);
        //监听snackbar的显示和隐藏
        snackbar.addCallback(new BaseTransientBottomBar.BaseCallback<Snackbar>() {
            @Override
            public void onDismissed(Snackbar transientBottomBar, int event) {
                super.onDismissed(transientBottomBar, event);
                Log.i("zhang_xin","消失");
            }

            @Override
            public void onShown(Snackbar transientBottomBar) {
                super.onShown(transientBottomBar);
                Log.i("zhang_xin","显示");
            }
        });

        snackbar.show();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值