3

右/左スワップのフリング イベントが識別されたときに、(ListView 内の) リスト アイテムのビューを変更する必要があります。

私はフリングイベントを特定することができますが、問題は 、どのアイテムでこのフリングイベントが発生したかを特定する方法です (リスト内の位置を知りたい)。

4

1 に答える 1

1

それが最善の方法かどうかはわかりませんが、次のような方法を試すことができます。

  1. 画面の高さを取得する
  2. 現在表示されているアイテムを数える (listView.getLastVisiblePosition() - listView.getFirstVisiblePosition())
  3. 1 つのアイテムの高さを計算します (ここでは、すべてのアイテムの高さが同じであると想定しています): screenheight/numOfItems
  4. フリングの開始時にタッチ イベントの Y 座標があれば、上からどのアイテムがクリックされたかを計算できます: posY/itemHeight
  5. これでアイテムを取得できます: listView.getItemAtPosition(listView.getFirstVisiblePosition() + valueCalculatedInPreviousPoint)

私はそれをテストしていないので、うまくいかないかもしれません。それは単なるアイデアです。

編集: また、このライブラリもあります: https://github.com/47deg/android-swipelistviewを使用するか、実装方法を確認できます。

于 2013-04-16T08:30:36.847 に答える