日々精進

新しく学んだことを書き留めていきます

Androidで同時タップを禁止する

iOSでは各ボタンにexclusiveTouchを設定していくところだが、Androidは 一箇所Styleを設定するだけでOKっぽい。 以下のように設定する。

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowEnableSplitTouch">false</item>
    <item name="android:splitMotionEvents">false</item>
</style>
<application
        android:label="@string/app_name"
        android:theme="@style/MyTheme" >

これは楽だなあ。 View毎に同時タップを禁止する設定を入れることもできる。

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:splitMotionEvents="false" <-----------!!!
    >

これを入れると子Viewの同時タップができなくなる。 でも、splitMotionEventsの設定は各ボタンの直接の親ViewGroupとすべてのボタンの共通の祖先のViewGroupに入れないといけないのでめんどい。。

参考: