3 本の指が触れたときにアクションを実行する他のすべての下にあるサイトのビューを作成しようとしています。これらのアクティビティにはすべて、独自のタッチとスワイプがあります。
linearlayout を拡張し、タッチをインターセプトするクラスを作成することで、これを機能させることができました。これをxmlに追加します。
ただし、これは、ボタンやビューなどのアイテムがクリック可能またはタッチ可能なサーフェスであり、それ自体がタッチ可能なサーフェスにならない場合にのみ呼び出されます。
の
public class MyCatcher extends LinearLayout {
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
// multitouch!! - touch down
int count = event.getPointerCount(); // Number of 'fingers' in this
if (count > 3) {
doThis(mContext);
}
}
return super.onInterceptTouchEvent(event);
}
そしてxmlで
<packagename.MyCatcher
....>
my normal layout
</packagename.MyCatcher>
したがって、このコードは、タッチ可能なアイテムがタッチされたが、独自のタッチレイヤーにならない場合に機能します。
コンストラクターで setontouchlister を試してみましたが、うまくいきませんでした。
助けてくれてありがとう
追加: onAttach を介して touchlistener を設定すると、タッチをキャッチすることができますが、1 が返されるため、通常のように event.getPointerCount() を使用できません。