Androidでボタンの同時押しを禁止にする方法

2019年5月13日

Androidでボタンの同時押しができてしまう理由

Androidではデフォルトでボタンの同時押しができる設定になっています。

ボタンが同時押しされることにより不都合が生じる場合はこれを防ぐ設定が別途必要です。

 

アプリ全体で同時押し禁止するか画面毎に同時押し禁止するかによって、

設定するファイルがことなるのでそれぞれ見ていきましょう。

 

 

アプリ全体でボタンの同時押しを禁止する方法

AndroidManifest.xmlにwindowEnableSplitTouchをfalseで

指定すれば全画面で同時押し禁止になります。

//windowEnableSplitTouchをfalseで設定
<item name="android:windowEnableSplitTouch">false</item>

 

画面毎にボタンの同時押し禁止を実装する方法

画面毎ボタンの同時押し禁止を実装するには、

xmlでsplitMotionEventsという属性をfalseにします。

 

例えば、A画面ではボタンの同時押しを許容してB画面は、

ボタンの同時押しを禁止したいという場合は以下のように設定します。

  • A画面で使用しているxmlには、splitMotionEventsを設定しない。またはtrueで設定する。
  • B画面で使用しているxmlには、splitMotionEventsをfalseで設定する。

同時押しを禁止する画面(B画面)で使用するviewの設定

下記の太字部分が同時押し禁止の設定です。

<LinearLayout android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:splitMotionEvents="false">
<Button android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
<Button android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

 

Androidでボタンの同時押しを禁止にするまとめ

  • Androidではデフォルトでボタンの同時押しを許容する設定になっている。
  • アプリ全体でボタンの同時押しを禁止する場合は、AndroidManifest.xmlにwindowEnableSplitTouchをfalseで指定する。
  • 画面毎にボタンの同時押しを禁止する場合は、同時押しを禁止する画面のviewで、
    splitMotionEventsをfalseに指定する。