美文网首页
Toast重复显示的问题

Toast重复显示的问题

作者: 最忆是深秋 | 来源:发表于2018-05-08 14:39 被阅读16次

    背景

      反复多次点击控件弹Toast 的场景,会一直不停的弹toast, 影响体验。所以就想无论点了多少次,只弹最后一次,这样体验最好。

    一个早就该踩的坑

      最初我是这么干的,完了发现Toast根本弹不出来了:

        private Toast mToast;
        public void showToast(){
            if(mToast == null){
                mToast = Toast.makeText(mContext, mContext.getResources().getString(R.string.xxx), Toast.LENGTH_SHORT);
            }
            mToast.cancel();
            mToast.show();
        }
    

    正解

        public void showToast(){
            if(mToast == null){
                mToast = Toast.makeText(mContext, mContext.getResources().getString(R.string.xxx), Toast.LENGTH_SHORT);
            }else{
                mToast.setText(R.string.xxx);
            }
            mToast.show();
        }
    

    解决思路,就是定义一个全局的成员变量Toast,这个Toast不为null的时候才去make,否则直接setText. 如果想要按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可。

    相关文章

      网友评论

          本文标题:Toast重复显示的问题

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