1
0

More than 3 years have passed since last update.

[Kotlin]toastAさんが居座ってしまいtoastBくんが呼べない方に、toastAさんに速やかに退去してもらう方法

Last updated at Posted at 2020-11-02

状況

kotlinのネイティブアプリ開発時に、エラーがあった場合にトーストを出すという処理を書いていたのですが、トーストが固まってしまい、次の画面に遷移してもトーストが消えないという現象に陥りました。

原因

前のトーストが完全に消えていない状態で次のトーストが呼ばれたことで、トースト詰まりが起こってしまったようです。

解決方法

こんな便利なものがありました。

toast.cancel() 

↑を追加したトーストの表示処理

MainActivity.kt

private var toast: Toast? = null

fun showToast() {
  toast?.cancel() // toastを表示する前に、既に表示されているtoastを消す

  val appContext = getContext()
  toast = Toast.makeText(
      appContext,
      R.string.toast_message,
      Toast.LENGTH_SHORT 
  )
  toast?.show()
}

参考

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0