1

所以ListView我附上了一个:

mList.setOnTouchListener(gestureListener);

这个手势监听器所做的基本上是测量 deltaX(水平滑动)并检测它是否高于某个值,然后它就知道发生了滑动。

然后我有:

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

如果发生了滑动,则检查手势对象,如果是,则为滑动,否则为单击。

这一切都很好。

我的问题是:

当我用拇指滑动元素时,有时我会使列表垂直滚动一点。检测到水平滑动,但问题是OnItemClickListener不会触发,这就是我会在项目上启动一些操作的地方,这取决于它是否是滑动。

所以问题是listview的垂直滚动机制使得onItemClicked事件不会触发。

在此处输入图像描述

左边的列表工作正常,没有出现垂直滚动。在右侧的列表中,我将项目滑动到底部,但也略微滑动到底部(仍在该项目的范围内),以便列表移动一点。而且OnItemClicked不会开火。

如何为垂直滚动添加一个小边距,以便出现滚动但仍然触发 onItemClicked?

谢谢

4

1 回答 1

2

我一直在寻找滑动列表视图的实现,现在在 12 月版的 Gmail 中,每个项目都有滑动效果,它的实现回答了我的问题

在这里能找到它 :

https://gist.github.com/2980593

于 2012-12-10T13:19:43.480 回答