美文网首页
自定义一个喜欢的Toast

自定义一个喜欢的Toast

作者: ltpdev | 来源:发表于2018-09-28 09:28 被阅读0次

    前言:

    本人是第一次写技术博客,如果写的不好,望大家勿喷,嘻嘻!

    写博客的缘由:

    因为自己最近有那么一种感觉,以前虽然这个知识点学习过或者工作遇到的问题并且得到解决了,但是随着时间的推移,造成好多知识点都渐渐忘记的结果。到头来你就会发现当再次遇到这个问题或知识点时,似乎有点陌生,就像背英语单词一样,它认识你,你不认识它一样。还有另一个原因,那就是深感自己的理解能力和记忆能力有限,必须画画流程图和做下笔记。基于这两点,我决定点燃起我对写技术博客的欲望。写博客有以下好处:

    1,随时记录下常用的知识点

     2,查漏补缺,方便记忆

    3,做技术总结

    正文:

    好了,废话不说了,进入今天的主题吧......

    大家都用过toast(吐司)吧,作用呢,就是反馈用户的信息。

    普通用法,看如下代码:

    public void showToast() {

    Toast.makeText(getActivity(),"哈哈我是第一个吐司", Toast.LENGTH_SHORT).show();

    }


    但是这种写法有问题,当重复点击这两个按钮,提示会不断重复按顺序出现。

    这怎么解决呢。。。

    这时候就要自定义了,如下:

    public class ToastUtil {

    private static Toasttoast;

    public static void showText(Context context,String text){

    if (toast==null){

    toast=Toast.makeText(context,text,Toast.LENGTH_SHORT);

    }else {

    toast.setText(text);

    }

    toast.show();

    }

    }

    就不会出现上面那种情况了。

    如果要实现这样效果:

    这种效果怎么实现呢,请看如下:

    public class ToastUtil {

    private static Toasttoast;

    public static void showText(Context context,String text){

    if (toast==null){

    toast=Toast.makeText(context,text,Toast.LENGTH_SHORT);

    //设置吐司显示的位置

                toast.setGravity(Gravity.CENTER,0,0);

    //得到吐司的父布局

                LinearLayout linearLayout= (LinearLayout)toast.getView();

    //设置父布局背景形状

                linearLayout.setBackground(DrawableUtils.getGradientDrawable(Color.parseColor("#aa000000"),16));

    //第一个孩子就是TextView了

                TextView tv= (TextView) linearLayout.getChildAt(0);

    tv.setTextSize(18);

    tv.setTextColor(Color.WHITE);

    tv.setGravity(Gravity.CENTER);

    }else {

    toast.setText(text);

    }

    toast.show();

    }

    }

    相关文章

      网友评论

          本文标题:自定义一个喜欢的Toast

          本文链接:https://www.haomeiwen.com/subject/kpeuoftx.html