在安卓项目中遇到了toast重复、延迟显示和重叠的问题,经过一番尝试,找到了比较满意的效果。
封装代码如下:
public class ToastUtil {
private static Toast mToast;
public static void showMessage(String message, int duration) {
Context context = MyApp.getInstance();
if (mToast != null) {
mToast.cancel(); //取消之前显示的toast,避免显示延迟。
}
mToast = new Toast(context);
mToast.setText(message);
mToast.setDuration(duration);
mToast.setGravity(Gravity.CENTER, 0, 0);
mToast.show();
}
//可在退出页面前调用,防止退出页面后还显示上个页面的toast
public static void cancelMessage() {
if (mToast != null) {
mToast.cancel();
mToast = null;
}
}
}
网友评论