我想检测列表视图中onFling事件的ListItem

时间:2013-04-16 08:14:13

标签: android listview

当识别出右/左交换的fling事件时,我需要更改List Item(在ListView中)的视图。

我能够确定投掷事件,但问题是我如何识别哪个项目(我想知道列表中的位置)这个突发事件发生了。

1 个答案:

答案 0 :(得分:1)

我不确定这是不是最好的方法,但你可以尝试这样的事情:

  1. 获取屏幕高度
  2. 计算当前可见的项目(listView.getLastVisiblePosition() - listView.getFirstVisiblePosition())
  3. 计算一个项目的高度(我假设所有项目都具有相同的高度):screenheight / numOfItems
  4. 如果您在投掷开始时有触摸事件的Y坐标,则可以计算从顶部点击的项目:posY / itemHeight
  5. 现在你可以得到你的项目:listView.getItemAtPosition(listView.getFirstVisiblePosition()+ valueCalculatedInPreviousPoint)
  6. 我没有对它进行测试,因此它可能无效,这只是一个想法。

    编辑: 还有这个lib:https://github.com/47deg/android-swipelistview你可以使用它或者看看它们是如何实现的。