背景
需求是把列表中的内容,拖到某个地方,然后删除。 例子:在win桌面中,拖住某个文件夹或者文件,拖到垃圾桶中,松开就把文件丢到垃圾桶去了。 这个场景和我的类似,就是列表中的内容,长按后触发拖拽,然后手指拖动到某个区域中。就触发删除。
个人博客 https://www.moonlightshadow.cn/article/842822858357866496
效果


这里的操作是,拖到item,然后超出了rv的控件范围,到了收藏,就删除了item,通知适配器更新。
当我接到这个需求的时候,我是拒绝的,因为我不想做,这么麻烦。
我就把我分析的过程给出来吧。
分析需求
- rv显示列表,这个简单
- rv的item可以拖动,好像也有api
- rv的item可以离开rv的rect之外,好像没有这个api啊,emmmmmm卡主了
- rv的item理论上是不能跑到这个容器之外的啊,卡主了
- item出去了就算了,他还能在屏幕任意地方跑,还能回来,卡主了
需求的难点是item能够脱离rv,游离在三界之外,怎么办。
for(;;){
反复分析,
分析失败····
}
具体我已经实现了,大家有什么好的实现方法,可以评论区留意,一起讨论。
我会继续更新我的整个实现过程。
这个需求是我半年前做好的,今天开始会陆陆续续分享给大家。