1

だから私はListView私が添付する上にあります:

mList.setOnTouchListener(gestureListener);

このジェスチャリスナーは、基本的にdeltaX(水平スワイプ)を測定し、それが何らかの値よりも高いかどうかを検出し、スワイプが発生したことを認識します。

で、〜がある :

mList.setOnItemClickListener(new AdapterView.OnItemClickListener() { ... } 

スワイプが発生したかどうかをジェスチャオブジェクトでチェックします。発生した場合はスワイプ、そうでない場合はクリックします。

これはすべて正常に機能します。

私の問題は:

親指で要素をスワイプすると、リストが少し垂直方向にスクロールすることがあります。水平スワイプが検出されましたが、問題はOnItemClickListener起動しないことです。これは、スワイプであるかどうかに応じて、アイテムに対していくつかのアクションを起動する場所です。

したがって、問題は、リストビューの垂直スクロールメカニズムにより、onItemClickedイベントが発生しないようにするものが作成されることです。

ここに画像の説明を入力してください

左側のリストは正常に機能し、垂直スクロールは表示されません。右側のリストでは、アイテムをスワイプしますが、リストが少し移動するように、アイテムを少し下にスワイプします(まだこのアイテムの範囲内です)。そして、OnItemClicked発砲しません。

垂直スクロールに小さなマージンを追加して、スクロールは表示されてもonItemClickedが実行されるようにするにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

リストビューをスワイプする実装を探していましたが、Gmailの12月版で各アイテムにスワイプ効果があると、その実装が私の質問に答えます。

それはここで見つけることができます:

https://gist.github.com/2980593

于 2012-12-10T13:19:43.480 に答える