1

FiewFlipperListViews を子として持っています。タッチ イベントがGestureDetector子に到達する前にインターセプトする方法、つまり ViewFlipper を介してタッチ イベントをグローバルにインターセプトする方法を探しました。

FiewFlipper を拡張して実装onInterceptTouchEvent (MotionEvent ev)することが解決策のようでした。これはほとんどの子供に有効です。ただし、リストビューがスクロールを開始すると、onInterceptTouchEvent はイベントの受信を停止します。

各リストビューの OnTouchListener を設定できることはわかっていますが、これにより、作成しようとしている単純な階層が台無しになります。

4

2 に答える 2

0

adampがコメントしたように、この動作は意図的なものであり、戦う必要はありません。ジェスチャリスナーを子要素に適用しました。

于 2011-05-15T18:27:32.310 に答える
0

うーん。私はかつて、単一のリストビューでアクティビティを実行しました。そこでは、フリングジェスチャの結果としてアダプタを再入力しました。アクティビティのdispatchTouchEventメソッドを実装することでそれを行いました。

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    super.dispatchTouchEvent(ev);
    return gestureDetector.onTouchEvent(ev);
}

リストビューは引き続き通常のイベントを受け取りましたが、私のgestureDectectorもそれらを味わうことができました。おそらく、同様のアプローチがあなたのために働くでしょうか?

于 2011-03-23T23:23:34.993 に答える