Androidでボタンの同時押し防止

2017/02/05

ViewGroupにandroid:splitMotionEvents=falseを指定すると、そのViewGroupに含まれる子要素でタッチイベントの検出が共有されます。つまり、同時押しができなくなるってことですね。

同時押しが必要ないアプリだったら、アプリ全体の共通styleに

<item name="android:windowEnableSplitTouch">false</item>

を指定してしまえばOK。

そもそもこのオプションがナニモノなのか気になったので調べてみました。 Y.A.M の 雑記帳: Android 3.0 Platform - 3 -によると

  • Android 3.0より前は1度に1つのViewだけがタッチイベントを受け取れた
  • Android 3.0からは異なるViewが同時にタッチイベントを受け取れるようになった
  • android:splitMotionEvents=falseはこの「同時に受け取る」機能を無効にするオプション

ということのようです。




関連(するかもしれない)記事


おススメ