2016-04-13 2 views
0

私は垂直にスクロールして完全に動作するListViewを持っています。ListView内にカプセル化されたImageViewのOnS​​croll()は複数回呼び出されます

ListViewの各要素には、ユーザーが異なる画像を見るために左右にスクロールできるGestureListenerを実装するImageViewがあります。

私が遭遇する問題は、実行されたスクロールアクションごとにImageViewのOnS​​crollが複数回呼び出されることです。

また、OnTouchEvent()が複数回呼び出されていることに気付きました。

OnScroll()の冗長な呼び出しをどのように取り除くことができますか?

+1

サンプルコードが本当に役立つでしょう - ImageViewsには "onScroll"がありません。通常、onScrollはスクロールが完了したときにのみ呼び出されます。あなたは別のアンドロイドデバイスで同じ動作を見ますか?またはエミュレータ? [AbsListView.OnScrollListener](https://developer.android.com/reference/android/widget/AbsListView.OnScrollListener.html)を使用していると仮定すると、 'SCROLL_STATE_IDLE'を押すまで待機する' onScrollStateChanged'を見ることができます – hide0

+0

@ hide0 ...コードが長すぎて投稿できませんでした...しかし、私は元の質問を編集しました。私はImageViewがGestureListenerを実装することによってOnScrollを "聴く"ことを可能にしました。クイックレスポンス、btwをありがとう...また、私はエミュレータを使用していません。 –

答えて

0

OnGestureListeneronScrollがすべてMotionEventsとなりますので、複数回呼び出されます。

あなたは、onScrollでインテリジェントになり、処理したくないものを明示的に無視したり、背中合わせのonScrollを検出したり(メモリ内で)チェーン化してより複雑なイベントを構築することができます。運がよかったし、シンプルなイベントを使用して逃げることができます。代わりにSimpleOnGestureListenerを使用してください。

+0

私はMotionEvents内のいくつかの要素、すなわちSource、Action、MetaStateを試してみましたが、それらはすべて同じ値を持っています... <頭を傷つける> –

関連する問題