仿微信未读RecyclerView平滑滚动定位效果

效果图有红点的地方表示有未读消息,依次双击首页图标定位,然后定位到某个未读在手动下滑一点距离在次点击定位效果

用过 RecyclerView 的人都知道,自带有几个滚动到item下标的方法,但是不靠谱,靠谱的又没有平滑效果,所以还是得自己写,主要是模仿了微信的一些定位逻辑

首先,要滚动到指定的坐标出,可以借用recyclerview自带的几个方法,但是无论哪个方法首先得需要指定position,所以第一件事情就是先把position找准确了

上面代码就是查询出可见条目开始最近的一条未读item的position,finds是用于控制定位到最后一条的时候返回第一条

接下来就是直接平滑滚动定位到未读的item条目了,这里就需要用到两个方法了, smoothScrollToPosition 这个方法是有平滑效果的,但是只能从下往上的时候才是我们想要的效果,所以我们还需要用另外的方法用于从上往下平滑滚动

这里用 smoothScrollBy 来滚动,smoothScrollBy方法需要一个top坐标,而不是position,所以这个需要先获取到定位item的top坐标,这里recyclerview也都有自带的方法,所以最后的方法如下

到这里就可以达到上面效果图的效果了

GitHub:https://github.com/1024477951/FragmentApp

原文地址:https://www.cnblogs.com/LiuZhen/p/9884948.html

时间: 2024-10-11 18:49:38

仿微信未读RecyclerView平滑滚动定位效果的相关文章

仿qq未读消息

仿qq未读消息 仿qq未读消息,拖拽删除 下载地址: 运行截图:    热门源码下载: 高仿京东商城 Android快速开发不可或缺的11个工具类 Android快速开发框架LoonAndroid Android应用源码比较不错的新闻客户端 版权声明:本文为博主原创文章,未经博主允许不得转载.

python类似微信未读信息图片脚本

其实就是实现一个效果,给一张图片,然后再右上角给出未读的信息数目,就像我们打开微信的时候,总是看到红点就忍不住想要点击去查看一样. 类似这种效果: 可以知道,图片是给定的,那么只要随机生成一个数字,然后再在图片的右上角显示出来就好了,这里可以使用PIL,这样就比较方便的实现了, 代码: from PIL import Image,ImageDraw, ImageFont import random origin_image = "./image/test.jpg" new_image

仿微信、QQ聊天界面私信对话效果

我们大家可能都看到过在自己使用社交Android软件的时候,会发现聊天页面的效果:有人说是气泡效果,也很像,是吧?那我们该怎么去实现那种效果呢?? 点击这里进入她的姊妹篇 点击这里下载源码 这个就是效果:有人物头像.聊天的当时时间.聊天内容.发送信息等:其实呢,她的思路很简单,我也弄了几个小时!恩,那我们就简单详细的聊聊吧!先看源代码:项目入口MainActivity.java: public class MainActivity extends Activity { private Linke

wing带你玩转自定义view系列(2) 简单模仿qq未读消息去除效果

上一篇介绍了贝塞尔曲线的简单应用 仿360内存清理效果 这一篇带来一个  两条贝塞尔曲线的应用 : 仿qq未读消息去除效果. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50503630 老规矩,先上效果图: qq的未读消息去除很炫酷,其实就是用了两条贝塞尔曲线,我们按思路来,先来画两个圆,及两条贝塞尔曲线,辅助点为圆心y坐标的一半.我们把下面移动的圆,叫做mMoveCircle. 这样一画,就很简单明了了对不对.只要在拖动的时候

Android游戏开发之主角的移动与地图的平滑滚动

人物移动地图的平滑滚动处理 玩过rpg游戏的朋友应该都知道RPG的游戏地图一般都比较大 今天我和大家分享一下在RPG游戏中如何来处理超出手机屏幕大小的游戏地图. 如图所示为程序效果动画图 地图滚动的原理 在本人之前博客的文章中介绍过人物在屏幕中的移动方式,因为之前拼的游戏地图是完全填充整个手机屏幕的,所以无需处理地图的平滑滚动.这篇文章我着重的向 大家介绍一下控制人物移动后地图滚动的处理方式.举个例子 如上图所示 比如人物向右移动,如果地图贴在屏幕左边边界 将先移动人物在地图的坐标,当人物在屏幕

求android实现未读短信图标数字提示效果

============问题描述============ 大家好, 我现在碰到一个需求是在一个图标上面加上一个数字,来提示有未读短信之类的效果. 效果图片发不出来,不知道是不是CSDN不让发,有知道的朋友可以告知一下啊. 我现在就描述一下,效果和iphone上面类似,知道的帮帮忙啊. ============解决方案1============ 你在网上搜BadgeView就有了

Android 使用NineOldAndroids实现仿微信listview左滑出现删除itembutton

这是一个使用NineOldAndroids实现仿微信listview左滑出现删除itembutton效果.使用的是Jake Wharton的动画开源库NineOldAndroids.在API3.0(Honeycomb), SDK新增了一个android.animation包,里面的类是实现动画效果相关的类,通过Honeycomb API,能够实现非常复杂的动画效果,但是如果开发者想在3.0以下使用这一套API, 则需要使用开源框架Nine Old Androids,在这个库中会根据我们运行的机器

weiyi通讯录(三)仿微信下拉列表和android样式

这几天一直在找工作 就没有更新了 ,我还更新一点东西把,之前说过这个通讯录是仿微信的 所以今天介绍下拉列表的效果 分享的是类似的代码 基本跟我的是一样.如果需要的联系人我把 或者加入我的交流群吧 -----------欢迎加入交流群 386451316 有问题一起讨论吧 代码下载:http://download.csdn.net/detail/u010982856/8232867 这里介绍两中方法  由于手机问题  不知道什么原因手机不能用 PopupWindow 方式 所以我使用的是activ

使用Scroller实现View的平滑滚动

在<实现View的移动的方法总结>一文中,介绍了实现View的移动的几种方法:setLayoutParams(),scrollTo()和scrollBy(),layout(),offsetLeftAndRight()和offsetTopAndBottom(),位移动画和属性动画.以上这几种方法中,只有位移动画和属性动画才是平滑滚动的,其他的几种方法都是瞬间让View移动到目标位置,给人的视觉体验并不太好,Android在一些ViewGroup中使用Scroller类来解决这个问题,比如View