Android 自定义Toast类

本文介绍了如何在Android开发中创建自定义Toast,模仿Glide的链式结构,提供简便的调用方式。内容包括实现自定义布局、设置文字提示、初始化全局Toast、处理短长Toast的展示,并给出了自定义布局和系统布局的示例。建议使用Application的Context以避免内存泄漏。
摘要由CSDN通过智能技术生成

       吐司是我们开发中常用到的,系统的吐司样式单一,位置获取麻烦.....(反正就是感觉拖泥带水的不干脆  ε=(´ο`*)))唉 ),最近上班之余搞搞MVP的基础框架,想到了写个自定义的吐司。主要为了简单,想了好久发现不会简化,那就搞个麻烦的。

1、羡慕人家Glide的链式结构,自己也搞个出来

 public static ToastUtils with(Context context) {
        ToastUtils.context = context;
        if (toastUtils == null) {
            toastUtils = new ToastUtils();
        }
        return toastUtils;
    }

这样让ToastUtils直接调用方法变成with一个,相信不会出现调用错误的情况了吧,

2、第二那必然是能显示系统的Toast,如果不能显示系统的,那就可以从入门到放弃了。更改了一下toast的布局样式,第一个是给message文字提示加上的set方法,第二个是初始化了全局的toast,防止空指针出现。然后就是基本的长短toast展示:

  @SuppressLint("ShowToast")
    public ToastUtils shortToast() {
        if (toastView != null && toastView.getChildCount() > 1) {
            toastView = null;
        } else {
            toast.setText(message);
            toast.setDuration(Toast.LENGTH_SHORT);
        }
        return this;
    }

当然short 和long方法是一样的,只是时间设置不一样。接下来说一说自定义布局,首先用addView添加布局,经过查看了源码才知道Toast默认布局是有message这个id的,一个大写的尴尬所以跑过来改一下原来写的。

 /**
     * 向Toast中添加自定义View
     */
    public ToastUtils addView(View view, int position) {
        toastView = (LinearLayout) toast.getView();
        toastView.addView(view, position);
        return this;
    }

可以给当前的View设置背景和文字颜色。然后添加布局和控件位置。

    /**
     * 设置Toast字体
     */
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值