LoginSignup
2
1

More than 3 years have passed since last update.

Androidのタップイベント透過メモ

Posted at

問題

Androidアプリにおきまして、blueViewの中にあるorangeViewのタップイベントの有効・無効を切り替える仕様がありました。
無効にした場合、orangeViewをタップしたとき、タップイベントがblueViewまで届かなかったので、その対応方法をメモしておきます。

図1.png

解決

View#isClickableをfalseにすることで、blueViewのタップイベントが呼ばれるようになります。
しかし、orangeViewにリップルアニメーションなどつけていると、それが動作してしまいます。

orangeView.isClickable = false

View#isEnabledをfalseにすることで、orangeViewのタップイベントを無効にすることができます。
しかし、isClickableがtrueの場合、blueViewのタップイベントが呼ばれません。

orangeView.isEnabled = false

上記、2点を組み合わせて、以下のようにすることで解決することができます。

// orangeViewのタップイベント有効
orangeView.isClickable = true
orangeView.isEnabled = true

// orangeViewのタップイベント無効
orangeView.isClickable = false
orangeView.isEnabled = false

GitHubサンプル

2
1
0

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
2
1