onTouchEvent ACTION_CANCEL がこないようにする

自分でViewを作ったときに、ScrollView に並べたら onTouchEvent に ACTION_CANCEL が来るようになりました。

ScrollView に並べていないときは ACTION_CANCEL がこなかったので問題なかったんですが・・・

自分が作った View の範囲を超えて指が上下どちらかに移動すると ACTION_CANCEL が来てしまいます。

多少のずれを許容してくれないと・・・なんだか使いにくい View になってしまうため下記を追加


public boolean onTouch(View v, MotionEvent event) {
                v.getParent().requestDisallowInterceptTouchEvent(true);
 }


 ピンクが ScrollView グレーが自分が作った View
試しで作っただけのものなので何かをするアプリではありません。

左下のチェックボックスで上記のコード内のtrue,falseを設定しています。

チェックが無いときは、グレーからピンクの領域に指を動かした後、上下どちらかの方向に動いたら ACTION_CANCEL が来ます。
チェックを入れると、ACTION_MOVE が続きます。

0 件のコメント:

コメントを投稿