ViewDragHelper:如何使用它?
Posted
技术标签:
【中文标题】ViewDragHelper:如何使用它?【英文标题】:ViewDragHelper: how to use it? 【发布时间】:2013-07-20 07:12:01 【问题描述】:在 Google IO 2013 中,Google 宣布了新版本的支持库,其中包括 ViewDragHelper
类。
我查看了文档,但找不到此类的任何用法示例。
例如,一个非常典型的情况:我有一个自定义视图,它从FrameLayout
扩展而来,并允许将一些View
s 拖到里面。例如,让它成为Button
。我在自定义视图中覆盖了onTouchEvent()
和onInterceptTouchEvent()
,如果矩形的按钮包含触摸坐标并且这不是简单的单击,那么我开始拖动。
那么,我必须用ViewDragHelper
做什么才能得到它?对Button
的点击应该会正确处理。
【问题讨论】:
你可以尝试在 Git Hub 上查看这个项目:github.com/umano/androidSlidingUpPanel 实际上我正在尝试找出它现在是如何工作的。目前,我在我的支持库 jar 中找不到任何 ViewDragHelper 的那一刻堆积如山。 :) 该类仅在支持库的最新版本中,日期为 2013 年 5 月。尝试通过 SDKManager 更新您的支持库。查看android.v4.support.widget
包。
你有没有设法得到一个可以处理点击和拖动的按钮?
【参考方案1】:
这是一个很好的例子,展示了如何使用 ViewDragHelper。 https://github.com/umano/AndroidSlidingUpPanel
使用ViewDragHelper.create()
方法创建它。使用shouldInterceptTouchEvent()
确定是否应该拦截来自子视图的触摸事件。
使用smootSlideViewTo()
方法在您的自定义视图中移动子视图。
【讨论】:
smootSlideViewTo 不适合我。另外,我找不到任何使用它的示例(SlidingUpPanel 除外)【参考方案2】:这是一篇关于如何使用ViewDragHelper
的好帖子
【讨论】:
链接已损坏。 old.flavienlaurent.com/blog/2013/08/28/… @shaobin0604 我发现你的文章很有启发性,并且几乎修改了YoutubeLayout
类,因此我可以将它与我自己的内容一起使用(2 个线性布局,内容非常多样化)。然而,我发现对课程进行一些调整有点困难,尽管我相信这与我对ViewDragHelper
的短暂了解有关。你认为有没有可能让内容不完全占据屏幕的高度?我希望它坚持我定义的 android:layout_height="wrap_content"
,目前它忽略了它。
很好的教程真的很有帮助以上是关于ViewDragHelper:如何使用它?的主要内容,如果未能解决你的问题,请参考以下文章
Android 中 View移动总结:ViewDragHelper学习及用法详解
Android 中 View移动总结:ViewDragHelper学习及用法详解
ViewDragHelper完全解析, 自定义ViewGroup神器
使用ViewDragHelper打造属于自己的DragLayout(抽屉开关 )