
该文件提供仿Launcher GridView拖动功能。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
Launcher风格的GridView拖动操作,指的是长按GridView中的一个项目,随后将其拖拽到其他项目之上,从而实现GridView中项目的位置互换。这种操作在Launcher中应用非常典型,网络上存在大量的GridView拖动Demo,然而这些Demo往往呈现出相似性,并且存在一些缺陷。 普遍情况下,这些Demo采用的是点击GridView中的一个项目后进行拖动,或者在项目之间不进行实时同步交换。 今天,我们将对GridView拖拽进行更为详尽的阐述,并对Demo进行优化和完善。 核心实现思路如下:首先,根据手指按下的X、Y坐标来确定在GridView上的点击位置;其次,在手指按下时,利用Handler和Runnable机制构建一个定时器,设定定时时间为1000毫秒。如果在1000毫秒内手指被抬起,则取消定时器;若手指没有被抬起且点击事件发生在GridView项目的区域内,则表明用户已对该项目进行了长按操作;第三步,当执行长按操作时隐藏该项目;随后使用WindowManager添加一个项目的镜像在屏幕上作为该隐藏项目的替代品;第四步,当手指在屏幕上移动时更新item镜像的位置;同时根据手指移动的X、Y坐标获取移动到的GridView位置;最后,当GridView中的项目数量超过一屏显示范围时,将item镜像拖动至屏幕下方以触发GridView向上滚动;反之,将item镜像拖动至屏幕上方以触发GridView向下滚动。 此外,为了完成数据交换和界面刷新,需要移除item的镜像。 本示例灵感来源于CSND社区的xiaanming博客提供的代码分析文档(已整理成离线PDF格式)。
全部评论 (0)
还没有任何评论哟~


