我开发了一款游戏,想通过 toast 显示一个对话框:每个句子在不同的 toast 中并一个接一个地显示,但我找不到 toast 的事件,例如隐藏/销毁。 我可以用吐司做这样的东西吗?
Toast 消息没有事件,它们内置于实际操作系统中,除了持续时间、位置、布局和内容之外,您无法控制或自定义它们。
如果您一个接一个地触发多个 Toast 消息,它们将被放置在队列中,当第一个消息的持续时间结束时,将显示下一个消息。通过这种方式,您可以实现您想要的目标,但是系统并不是为此而设计的。您应该考虑在视图层次结构中使用一个位于其他视图之上的 View 对象来放置您的句子。这将使您能够更好地控制向用户显示的内容,并为您提供回调。被触摸等。这意味着用户可以按照自己的速度阅读您向他们显示的消息,而不仅仅是您为 Toast 持续时间指定的时间长度。
Toast.show()
函数时,Toast 会被加载到队列中,并依次显示。因此,就你而言,你应该能够做类似的事情......
Toast.makeText(context, "message 1" Toast.LENGTH_LONG).show();
Toast.makeText(context, "message 2" Toast.LENGTH_LONG).show();
Toast.makeText(context, "message 3" Toast.LENGTH_LONG).show();
并且后续的每个 Toast 将在前一个 Toast 完成后显示。
here):
val mvToast = Toast.makeText(applicationContext, "Toastémon", Toast.LENGTH_LONG)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Log.d("Tag", "Android Red Velvet Cake+")
mvToast.addCallback(object : Toast.Callback() {
override fun onToastShown() {
super.onToastShown()
Log.d("Tag", "Wild Toast appeared!")
}
override fun onToastHidden() {
super.onToastHidden()
Log.d("Tag", "TOAST fled!")
}
})
}
mvToast.show()
希望对路人有帮助!愿上帝保佑平安!