Android高仿网易新闻频道管理拖动排序控件
高仿网易新闻的频道管理,用拖动的 GridView 做得还挺像样的。这个 DEMO 里,核心是自定义了个叫EasyTagDragView
的控件,能让 GridView 的每一项都支持拖动、排序,还带动画,交互体验蛮不错的。
频道管理的交互,像今日头条、腾讯视频这些 APP 里都挺常见的。用户可以自己调整频道顺序,功能虽不复杂,但细节挺多。这项目就比较实用地实现了这一套,还把源码放出来,能直接上手研究。
拖动排序主要靠的是长按监听和手势跟踪。你按住某个 Item,它就进入拖动状态,就可以在 GridView 里自由移动了。为了拖动顺畅,还加了动画效果,比如 Item 位移、透明度变化这些,看着更自然。
数据更新这块也得比较周到。每次你拖动了位置,Adapter 里的数据也会实时跟着改,onItemMove()方法就是用来干这事的。如果你是用RecyclerView
开发的,可以类比下用ItemTouchHelper
拖动手势,原理差不多。
还有一些细节别忽略:比如边界控制,防止拖动项跑出界;状态保存,保证 APP 关闭再打开时顺序不乱;还有ViewHolder 优化,滚动不卡顿。这些小细节都影响使用体验。
如果你正在开发新闻类 APP、或者需要用到可排序 Grid 的功能,这个项目真的挺值得一看。你可以直接拿来改,或者参考实现逻辑做定制化开发,效率高不少。
691.65KB
文件大小:
评论区