我对吐司有疑问。对于 API 26 及以下版本,toast 可以正确显示(下一个 toast 正在等待上一个消失),但在 Android 8.1 (API 27) 上,它们相互覆盖。我有这样设置的通知通道:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID,
NOTIFICATION_CHANNEL_NAME,
NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(notificationChannel);
builder.setChannelId(NOTIFICATION_CHANNEL_ID);
}
这为我修复了 8.0 上的敬酒,但在 8.1 上它们仍然重叠
有没有办法解决这个问题,而不是记住上次使用的吐司并手动取消它?
编辑:
此线程的解决方法不起作用
/**
* <strong>public void showAToast (String st)</strong></br>
* this little method displays a toast on the screen.</br>
* it checks if a toast is currently visible</br>
* if so </br>
* ... it "sets" the new text</br>
* else</br>
* ... it "makes" the new text</br>
* and "shows" either or
* @param st the string to be toasted
*/
public void showAToast (String st){ //"Toast toast" is declared in the class
try{ toast.getView().isShown(); // true if visible
toast.setText(st);
} catch (Exception e) { // invisible if exception
toast = Toast.makeText(theContext, st, toastDuration);
}
toast.show(); //finally display it
}
吐司仍然重叠
编辑 2:我在 Android 问题跟踪器上为这个错误创建了故事: 链接