Touch CoorsがWidgetの内側にない場合でも、Widgetで処理されたOntouchイベントをAndroidで維持するにはどうすればよいですか
-
25-10-2019 - |
質問
複雑な質問でごめんなさい、説明させてください。いくつかのOntouchイベントを処理するカスタムウィジェットを作成しました。私がやりたいのは、そのカスタムウィジェット(オンダウン)でタッチイベントを開始するとき、絶対的なコーディネーションがそのウィジェットに含まれていなくても、これらのイベントを処理し続けることです。
ScrollViewがあり、その上に(ScrollView内)、(左 - 右)スクロールを処理するウィジェットがあります。しかし、指を垂直に移動すると、Ontouchイベントが消費され、Scollviewによって処理されます。 ScrollViewを強制する方法がタッチイベントを処理するか、カスタムウィジェットを強制してTouchEventを処理し続ける方法がある場合、カスタムウィジェット内でOntoucheventを起動した場合は?
更新私はそれに出くわしました http://groups.google.com/group/android-framework/browse_thread/thread/2cdd4269dfb2772e?pli=1 .
私の場合、カスタムウィジェットが「ScrollView」のようなスクロールビューの内側にない場合に機能します。 「スクロールオブジェクトの内側の蜂の巣。タッチエベントで親にこれらを送らない方法を解決しようとしていますか?
解決
ウィジェットのOntouch Handler(Action_Moveなど)で、 parent.requestdisallowintercepttouchevent(true). 。その方法は、基本的に、親(あなたの場合はScrollview)とその祖先にタッチイベントを傍受しないように依頼しています。
他のヒント
ScrollViewの特別なサブクラスを実装する必要があります。これにより、ウィジェットは、必要なときにスクロールを無効にすることを指示できます(したがって、十分な動きの後にスクロールを開始し、ウィジェットからイベントを取得することはありません)。カスタムスクロールビューは、この方法をオーバーライドできます。
基本クラスにスクロール用のタッチイベントを消費したくない場合は、ベースの実装を呼び出す代わりに、ここでFalseを返します。