屏蔽RecyclerView单边滑动到头阴影(fadingEdge)的方法
前言
RecyclerView 是一个增强版的ListView,不仅可以实现和ListView同样的效果,还优化了ListView中存在的各种不足之处
ResyslerView 能够实现横向滚动,这是ListView所不能实现的
目前官方更加推荐使用RecyclerView.
场景:
由于在某些产品需求下,希望RecyclerView滑动到底部时显示到头阴影,但由于顶部是下拉刷新控件而不希望显示顶部的fadingEdge。
做法:
通过阅读RecyclerView的源码实现,我们发现没有暴露的方法可被调用或重载,故采用反射的方式实现。
代码如下:
mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); EdgeEffectCompat mTopGlow = null; try { Field topGlow = mRecyclerView.getClass().getDeclaredField("mTopGlow"); if (topGlow != null) { topGlow.setAccessible(true); mTopGlow = (EdgeEffectCompat) topGlow.get(mRecyclerView); } } catch (Exception e) { e.printStackTrace(); } if (mTopGlow != null) { mTopGlow.setSize(0, 0); mTopGlow.finish(); } } });
如有其他更优方案,欢迎讨论。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
您可能感兴趣的文章:
- Android中RecyclerView实现横向滑动代码
- Android中RecyclerView嵌套滑动冲突解决的代码片段
- Android使用RecyclerView实现水平滚动控件
- Android RecyclerView 复用错乱通用解法详解
- Android实现评论栏随Recyclerview滑动左右移动
- Android中RecyclerView 滑动时图片加载的优化
- RecyclerView使用详解
相关推荐
-
RecyclerView使用详解
RecylerView介绍 RecylerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字recylerview即回收view也可以看出.官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活.RecyclerView通过设置LayoutManager,ItemDecoration,ItemAnimator实现你想要的效果. 使用LayoutManager来确
-
Android中RecyclerView嵌套滑动冲突解决的代码片段
在纵向RecyclerView嵌套横向RecyclerView时,如果纵向RecyclerView有下拉刷新功能,那么内部的横向RecyclerView的横向滑动体验会很差.(只有纯横向滑动时,才能滑动内部的横向RecyclerView,否则滑动事件就会影响到下拉刷新),添加拦截判断. public class MySwipeRefreshLayout extends SwipeRefreshLayout { private boolean mIsVpDragger; private final
-
Android使用RecyclerView实现水平滚动控件
前言 相信大家都知道Android滚动控件的实现方式有很多, 使用RecyclerView也比较简单. 做了一个简单的年龄滚动控件, 让我们来看看RecyclerView的使用方式, 主要有以下几点: (1) 对齐控件中心位置. (2) 计算滚动距离. (3) 高亮中心视图. (4) 实时显示中心数据. (5) 停止时自动对齐. (6) 滚动时, 设置按钮状态开关. 效果 1. 框架 主要关注RecyclerView部分逻辑. /** * 初始化年龄滑动条 */ private void ini
-
Android实现评论栏随Recyclerview滑动左右移动
最近在玩一个叫"约会吧"的应用,也是在看直播app,默认下载安装的,安装点进去看这个应用做的不错,就留下来了.然后看他们动态详情页底部有一个效果:Recyclerview滑动到的评论列表的时候,底部点赞那栏会往左滑动,出现一个输入评论的栏:然后下拉到底部的时候输入评论栏会往右滑动,出现点赞栏.详细细节直接来看效果图吧. 其实这种效果现在在应用中还是很常见的,有上拉,toolbar.底部view隐藏,下拉显示,或者像现在约会吧这样左右滑动的效果.而且网上资料现在也有很多,有通过Objec
-
Android中RecyclerView 滑动时图片加载的优化
RecyclerView 滑动时的优化处理,在滑动时停止加载图片,在滑动停止时开始加载图片,这里用了Glide.pause 和Glide.resume.这里为了避免重复设置增加开销,设置了一个标志变量来做判断. mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, in
-
Android RecyclerView 复用错乱通用解法详解
写在前面: 在上篇文章中说过对于像 RecyclerView 或者 ListView 等等此类在有限屏幕中展示大量内容的控件,复用的逻辑就是其核心的逻辑,而关于复用导致最常见的 bug 就是复用错乱.在大上周我就遇到了一个很奇怪的问题,这也是我下决心研究 RecyclerView 的原因. RecyclerView 源码分析 而这篇文章的目的首先是讨论在 RecyclerView 复用错乱时,一些通用的解决思路,其次就是探究我遇到的那个奇怪的问题,帮助未来同样遇到的朋友们. 复用错乱的解决办法
-
Android中RecyclerView实现横向滑动代码
RecyclerView 是Android L版本中新添加的一个用来取代ListView的SDK,它的灵活性与可替代性比listview更好.本文给大家介绍Android中RecyclerView实现横向滑动代码,一起看看吧. android.support.v7.widget.RecyclerView 功能:RecyclerView横向滑动 控件:<android.support.v7.widget.RecyclerView /> Java类:RecyclerView.GalleryAdap
-
屏蔽RecyclerView单边滑动到头阴影(fadingEdge)的方法
前言 RecyclerView 是一个增强版的ListView,不仅可以实现和ListView同样的效果,还优化了ListView中存在的各种不足之处 ResyslerView 能够实现横向滚动,这是ListView所不能实现的 目前官方更加推荐使用RecyclerView. 场景: 由于在某些产品需求下,希望RecyclerView滑动到底部时显示到头阴影,但由于顶部是下拉刷新控件而不希望显示顶部的fadingEdge. 做法: 通过阅读RecyclerView的源码实现,我们发现没有暴露的方
-
Android中RecyclerView实现滑动删除与拖拽功能
前言 从Android 5.0开始,谷歌推出了新的控件RecyclerView,相对于早它之前的ListView,优点多多,功能强大,也给我们的开发着提供了极大的便利,今天自己学习一下RecyclerView轻松实现滑动删除及拖拽的效果. 如下图. 相信研究过RecyclerView的同学,应该很清楚该怎么实现这样的效果,若是用ListView,这样的效果实现起来可能就有点麻烦,但是在强大的RecyclerView面前这样的的效果只需很少的代码,因为谷歌给我们提供了强大的工具类ItemTouch
-
Android嵌套RecyclerView左右滑动替代自定义view
以前的左右滑动效果采用自定义scrollview或者linearlayout来实现,recyclerview可以很好的做这个功能,一般的需求就是要么一个独立的左右滑动效果,要么在一个列表里的中间部分一个左右滑动效果 而列表里面也容易,只是需要解决一点小问题,个人认为值得一提的就是高度问题,一般的人采用固定死的高度,可是在列表里面展示和机型的不同,固定死的话很难保证美观,动态的高度才能解决问题的所在 首先在一个列表控件布局上添加一个recyclerview控件 <android.support.v
-
RecyclerView滑动到指定Position的方法
Question 最近在写 SideBar 的时候遇到一个问题,当执行 Recyclerview 的 smoothScrollToPosition(position) 的时候,Recyclerview 看上去并没有滚动到指定位置. Analysis 当然,这并不是方法的bug,而是 smoothScrollToPosition(position) 的执行效果有三种情况,需要区分. ·目标position在第一个可见项之前 . 这种情况调用smoothScrollToPosition能够平滑的滚动
-
item高度不同时Recyclerview获取滑动距离的方法
前言 最近遇到需求,要计算RecyclerView滑动距离,用提供的computeVerticalScrollOffset()方法得到的值不是很准确.是基于item的平均高度算得,如果列表中item高度一致可以用此方法.问题来了,我的应用场景是各item高度不一,这时就只能另找方法了. 方法一: 网上找的方法,用一个变量去统计,每次滑动的时候累加y轴偏移量.item插入\移动\删除的时候,需要手动去更新totalDy,不然就会一直错下去. private int totalDy = 0; mRe
-
Android RecyclerView实现滑动删除
本文实例为大家分享了RecyclerView实现滑动删除的具体代码,供大家参考,具体内容如下 package com.example.demo; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.Lin
-
Android编程滑动效果之倒影效果实现方法(附demo源码下载)
本文实例讲述了Android编程滑动效果之倒影效果实现方法.分享给大家供大家参考,具体如下: 前面介绍了使用<Android编程实现3D滑动旋转效果的方法>,现在介绍图片倒影实现,先看效果图 这里主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现 1.倒影绘制 ImageAdapter继承自BaseAdapter,详细实现可见前面关于Android Gallery的用法.这里重点介绍倒影原理及实现 倒影原理: 倒影效果是主要由原图+间距+倒影三部分组成,
-
JS简单实现滑动加载数据的方法示例
本文实例讲述了JS简单实现滑动加载数据的方法.分享给大家供大家参考,具体如下: //滑动 function getScrollTop() { var scrollTop = 0; if (document.documentElement && document.documentElement.scrollTop) { scrollTop = document.documentElement.scrollTop; }else if (document.body) { scrollTop =
-
解决RecyclerView无法onItemClick问题的两种方法
对于RecyclerView的使用,大家可以查看将替代ListView的RecyclerView 的使用详解(一),单单从代码结构来说RecyclerView确实比ListView优化了很多,也简化了我们编写代码量,但是有一个问题会导致开发者不会去用它,更比说替换ListView了,我不知道使用过RecyclerView的人有没有进一步查看,RecyclerView没有提供Item的点击事件,我们使用列表不仅仅为了显示数据,同时也可以能会交互,所以RecyclerView这个问题导致基本没有人用
随机推荐
- 举例详解Python中循环语句的嵌套使用
- ColdFusionMX 编程指南 ColdFusionMX Basic Tag编程
- 批处理完美实现FTP远程备份数据
- centos 7安装mysql5.5的方法
- AugularJS从入门到实践(必看篇)
- VBS教程:方法-Skip 方法
- java 单例模式(饿汉模式与懒汉模式)
- BootStrap表单控件之复选框checkbox和单选择按钮radio
- 基于js 本地存储(详解)
- net use 命令集合详解()
- linux sudo命令详解
- jQuery extend 的简单实例
- Firefox getBoxObjectFor getBoundingClientRect联系
- NodeJS创建基础应用并应用模板引擎
- 使用JS和canvas实现gif动图的停止和播放代码
- Android实现带指示器的自动轮播式ViewPager
- 微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
- CSS 图片横向排列实现代码
- php实现统计二进制中1的个数算法示例
- 对Python中for复合语句的使用示例讲解