2012-04-18 10 views
1

私は頭が爆発する問題に直面しています。基本的に私はダブルタップを認識し、垂直ScrollViewを含むFrameLayoutを持っています。問題は、ScrollViewをダブルタップすると、イベントがFrameLayoutに伝播しないということです。 FrameLayoutが空の場合、ダブルタップは正しく認識されます。ScrollViewからAndroidのコンテナにイベントを伝播する

すでに、ScrollViewをサブクラス化してonTouchEventメソッドからfalseを返すことを試みました。ダブルタップイベントはFrameLayoutによって認識されますが、ScrollViewはもうスクロールしません。

何か助けていただければ幸いです。

ありがとうございます!タッチインターセプト

答えて

4

FrameLayoutViewGroup.onInterceptTouchEvent(MotionEvent ev)をオーバーライドすることにより、あなたはScrollViewがイベントを処理したい場合は、それが受け継がまたはfalseされていないので、イベントが処理された場合はtrueを返します。

+0

これを理解しておきましょう。最初にタッチイベントがコンテナによって傍受され、次にサブビューに伝播されます(サブビューからコンテナまで)。 – Luke47

+0

それは正しいです。イベントは引き継がれます。 'Activity'に' onDispatchTouchEvent'があります。これはどのビューよりも便利なイベントを処理できるようにします。 – techiServices

+0

申し訳ありませんが、私はこの作業を行うことができません。たぶん私は何かが不足していますが、onInterceptTouchEventでは "evがダブルタップですか?trueを返す、そうでなければfalseです"というような有用な情報がありますが、このような実装方法はわかりません。何か提案がありますか? TY – Luke47

関連する問題