分类分类
大小:2.01 MB更新:2026-02-19
类别:其他系统:Android
仿网易360新闻等新闻阅读器频道管理实现的功能是很多新闻阅读器(网易,今日头条,360新闻等)以及腾讯视频等里面都会出现的频道管理功能,点击可以增删频道,长按拖拽排序。下面的效果图没有拖拽的时候的移动动画,DEMO里面有,可以下载看看。
实现思路:
1. 获取数据库中频道的列表,如果为空,赋予默认列表,并存入数据库,之后通过对应的适配器赋给对应的GridView
2. 2个GridView--(1.DragGrid 2. OtherGridView)
DragGrid 用于显示我的频道,带有长按拖拽效果
OtherGridView用于显示更多频道,不带推拽效果
注:由于屏幕大小不一定,外层使用ScrollView,所以2者都要重写计算高度
3. 点击2个GridView的时候,根据点击的Item对应的position,获取position对应的view,进行创建一层移动的动画层
起始位置:点击的positiongetLocationInWindow()获取。终点位置:另一个GridView的最后个ITEM 的position + 1的位置。
并赋予移动动画,等动画结束后对2者对应的频道列表进行数据的remove和add操作。
4. 设置点击和拖动的限制条件,如 推荐 这个ITEM是不允许用户操作的。
5. 拖动的DragGrid的操作:
(1)长按获取长按的ITEM的position -- dragPosition 以及对应的view ,手指触摸屏幕的时候,调用onInterceptTouchEvent来获取MotionEvent.ACTION_DOWN事件,获取对应的数据。由于这里是继承了GridView,所以长按时间可以通过setOnItemLongClickListener监听来执行,或则你也可以通过计算点击时间来监听是否长按。
(2)通过onTouchEvent(MotionEvent ev)来监听手指的移动和抬起动作。当它移动到 其它的item下面,并且下方的item对应的position 不等于 dragPosition,进行数据交换,并且2者之间的所有item进行移动动画,动画结束后,数据更替刷新界面。
(3) 抬起手后,清除掉拖动时候创建的view,让GridView中的数据显示。
6. 退出时候,将改变后的频道列表存入数据库。
效果图:

Android Kotlin中实现MVP架构其他259 KB2020-04-29
下载Android模仿今日头条点赞动画 连击动画源码其他3.45 MB2020-04-02
下载Android自定义View 雷达扫描效果源码其他849 KB2020-04-01
下载Android UI动画仿直播点赞飘心动画效果其他7.46 MB2020-03-26
下载Android 简单的刮奖效果的自定义View其他293 KB2020-03-25
下载Android 一个屏幕适配框架其他480 KB2020-03-20
下载Android 非常Material Design风格的Dropdown效果其他214 KB2020-03-19
下载Android 一个可以动态的循环 ViewPaper其他216 KB2020-03-18
下载Android 仿QQ删除消息提示其他419 KB2020-03-17
下载Android 九点锁频其他194 KB2020-03-16
下载Android 优雅的气球选择器 BalloonPicker其他9.18 MB2020-03-09
下载Android 动态发表页其他223 KB2020-03-06
下载