我在我的应用程序中有一个自定义的列表视图,在该列表项中,列表项可以拖动,并且可以在列表视图本身的其他位置上放置。现在我的问题是,我想滚动列表视图。我尝试使用onIntercept touch事件,但只有触摸事件发生。我无法滚动,有人能给我建议如何实现这个功能吗...
我在我的应用程序中有一个自定义的列表视图,在该列表项中,列表项可以拖动,并且可以在列表视图本身的其他位置上放置。现在我的问题是,我想滚动列表视图。我尝试使用onIntercept touch事件,但只有触摸事件发生。我无法滚动,有人能给我建议如何实现这个功能吗...
我使用pointToPosition方法获取了平面位置,并动态将其提供给smoothScrollToPosition方法。
int flatPos=pointToPosition(flatx, flaty);
super.smoothScrollToPosition(flatPos);
ListItem
创建如下所示的布局:
如果这种布局不符合您的要求,请告诉我们。
你可以考虑使用Carl A. Bauer的开源DragSortListView
库,它可以处理拖动排序,即使在没有拖放功能的旧版Android上也能实现,同时仍然可以滚动列表。有两种特定的技术可以用于此:您可以使用拖动手柄(如Gagan所绘制的)来排序项目,并让任何其他地方的拖动滚动列表;或者您可以让拖动滚动列表,并长按一个项目来拿起并重新排列它。它非常灵活地处理轻触和拖动,因此还有更多可能性。
完全透明披露:作为该库的用户,我也为其做出了贡献,但我对人们使用它没有任何经济利益,也没有与作者的其他联系。