ListViews setSelection取消触摸事件

时间:2011-11-16 09:24:26

标签: android

另一个与ListView相关的问题(有一天我会杀了我,我发誓)。

情况如下: 我在我的应用程序中有拖放功能,您当前拖动的元素可以放在ListView项目上(有点像将文件夹拖到PC上的另一个文件夹中)。

在给定时间(duh)屏幕上也有一定数量的项目,因此在拖动时我需要某种滚动功能。这个想法并不新鲜,当你拖动到列表视图的顶部或底部边框并在那里停留片刻时,它就会开始滚动。

问题是,当我尝试使用setSelection或smoothScrollToPosition滚动时,我的可拖动视图的触摸事件将返回代码3(ACTION_CANCELED),因此拖动只会冻结。

任何人都可以帮助我赢得这个吗?

P.S。差点忘了。我试图使用scrollBy。 scrollBy不会破坏我的触摸事件,但它实际上并没有滚动listView。滚动下降,但项目不会被回收并再次重复使用。它只是一个空白的屏幕,元素必须是。

1 个答案:

答案 0 :(得分:1)

尝试使用ListView.setSelectionFromTop()滚动。这应该有效,并且在调用此方法时不会忽略触摸事件。

来源:这个回答:Maintain/Save/Restore scroll position when returning to a ListView