Toast優化,解決頻繁點擊多次出現


日常用到Taost的機會很多,用就大家都會用,但是直接使用時,頻繁點擊Toast就會頻繁出現,點擊多少次就出現多少次,如果你不在頁面的生命周期相應位置cancel掉Toast的話,即使退出了頁面也是會繼續彈出,非常煩人,也會顯示出你的水平低下。

優化Toast的核心原理是,當生成一個Toast還沒消失時,重復點擊同樣的一樣Toast,不會再生成。下面來代碼

public class ToastHelper {
    public static Toast mToast = null;
    /**
     * 彈出Toast
     * @param context 上下文對象
     * @param text    提示的文本
     * @param duration 持續時間(0:短;1:長)
     */
    public static void showToast(Context context, String text, int duration) {
        if (mToast == null) {
            mToast = Toast.makeText(context, text, duration);
        } else {
            mToast.setText(text);
            mToast.setDuration(duration);
        }
        mToast.show();
    }
    /**
     *
     * 彈出Toast
     * @param context 上下文對象
     * @param text    提示的文本
     * @param duration 持續時間(0:短;1:長)
     * @param gravity  位置(Gravity.CENTER;Gravity.TOP;...)
     */
    public static void showToast(Context context, String text, int duration,int gravity) {
        if (mToast == null) {
            mToast = Toast.makeText(context, text, duration);
        } else {
            mToast.setText(text);
            mToast.setDuration(duration);
        }
        mToast.setGravity(gravity, 0, 0);
        mToast.show();
    }
    /**
     * 關閉Toast
     */
    public static void cancelToast(){
        if(mToast !=null){
            mToast.cancel();
        }
    }
}

下載時使用規則

 ToastHelper.showToast(this, "您的輸入為空!",0);//1是長,0是短

另外在Activity的生命周期內還可以根據需求優化一下,退出本頁面時Toast被cancel掉

@Override
    protected void onDestroy() {
        super.onDestroy();
        ToastHelper.cancelToast();
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM