偶然间发现的bug

场景如下: recyclerView使用了头部view的逻辑。具体adapter就不介绍了,具体可以去看我的TreeRecycleView库。大致就是添加了一个头部view

ImageView  imageView = new ImageView(getContext());imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
headerAndFootWrapper.addHeaderView(imageView);
复制代码

我的需求,根据服务器返回的数据。动态设置头部显示隐藏

public void setBanner(String url) {if (TextUtils.isEmpty(url)) {imageView.setVisibility(View.GONE);} else {imageView.setVisibility(View.VISIBLE);ImageLoaderUtil.getInstance().loadImage(url, imageView);}}
复制代码

这时问题出现了:

如果头部imageView隐藏了。那么就无法下拉刷新 如果头部显示了,就可以下拉刷新

那么问题来了,什么鬼呢?

研究了一会。

总结如下:

RecycleView的第一个条目的所有View,如果没有高度(比如用了WRAP_CONTENT)并且使用了View.Gone

那么SwipeRefreshLayout的下拉刷新就不会触发。因为RecyclerView.childAt(0).getTop()不会返回正常结果。

解决也简单。

1.添加了头部View的话。在设置View.GONE的时候记得 notifyDataSetChanged() 刷新一下

SwipeRefreshLayout+RecyclerView滑动冲突解决相关推荐

  1. Android滑动冲突解决方法

    Android滑动冲突解决方法 滑动冲突 首先讲解一下什么是滑动冲突.当你需要在一个ScrollView中嵌套使用ListView或者RecyclerView的时候你会发现只有ScrollView能够 ...

  2. Android进阶必备:滑动冲突解决与事件分发机制(附视频讲解)这篇看完还不懂请寄刀片

    1.前言 Android学习一段时间,需求做多了必然会遇到滑动冲突问题,比如在一个ScrollView中要嵌套一个地图View,这时候触摸移动地图或者放大缩小地图就会变得不太准确甚至没有反应,这就是遇 ...

  3. Android ScrollView与 X5Webview+RecyclerView的滑动冲突解决

    要解决ScrollView嵌套的X5WebView.滑动.高度冲突,则首先要解决ScrollView与 X5Webview的滑动冲突, <ScrollView     android:layou ...

  4. Android滑动冲突解决方式(下拉刷新上拉加载更多,适配RecyclerView/ListView/ScrollView)

    一.Android事件的分发机制 这里需要了解下Andorid事件的分发机制.事件分发一般是针对一组事件,即ACTION_DOWN > ACTION_UP 或 ACTION_DOWN > ...

  5. Android滑动冲突解决方法(二)

    之前的一遍学习笔记主要就Android滑动冲突中,在不同方向的滑动所造成冲突进行了了解,这种冲突很容易理解,当然也很容易解决.今天,就同方向的滑动所造成的冲突进行一下了解,这里就先以垂直方向的滑动冲突 ...

  6. 滑动冲突解决方式总结

    一.冲突类型 滑动冲突分为三种类型,第一类是外部和内部滑动方向不一致,第二类是外部和内部滑动方向一致,第三类是前两种嵌套的模式. 处理这三种类型的规则分为两类,对于第一种类型,我们可以根据滑动方向来处 ...

  7. 关于ViewPager嵌套ViewPager左右滑动冲突解决方法

    情况如下,TabLayout+ViewPager+Fragment,其中一个Fragment里面又嵌套了一层TabLayout+ViewPager+Fragment,运行的时候出现了两个情况. 1.子 ...

  8. Slidingmenu与ViewPager广告栏滑动冲突解决分享

    之前在公司开发的时候, 在主页部分fragment使用了ViewPager作为广告栏,但项目里又引用了SlidingMenu开源库用作侧滑菜单,于是这里产生了滑动冲突:广告栏不能滑动了,滑动却是侧滑了 ...

  9. SwipeRefreshLayout和RecyclerView滑动冲突的解决

    做了个项目,用了support包里的SwipeRefreshLayout和RecyclerView.两者一起使用有一点点小问题,有时候拉着拉着,列表还没拉玩就出来刷新的图标了,在华为荣耀上尤为明显. ...

  10. ScrollView 嵌套EditText 滑动冲突解决

    ScrollView 嵌套EditText,导致EditText 文字过多,滑动不了. 布局文件: <?xml version="1.0" encoding="ut ...

最新文章

  1. 我是如何进入全球顶级AI实验室的 (1)
  2. liferay requestrequest和actionRequest用法
  3. 美工一流的个人网站源码系列(2),不漂亮你可以不下载!
  4. 《苹果往事:开发麦金托什的非凡岁月》撷英
  5. java循环1000000000_求十亿内所有质数的和,怎么做最快?
  6. 内联函数 inline
  7. $(#).html(ftl) js 动态引入宏定义,FTL惯用标签及语法
  8. paip.提升性能---首页性能加快解决方案
  9. 集成电路模拟版图入门-版图基础学习笔记(三)
  10. nx零件库插件_ug标准件库下载
  11. 最新iOS面试题:APP性能优化(①系列更新)
  12. 电脑桌面下栏和计算机里面全黑,电脑桌面下面菜单栏变黑条了,为什么?
  13. css样式代码的基本格式
  14. 大学计算机实验教程实验4,计算机组成原理实验报告(四个实验 图)
  15. 共享单车骑行及锁车定位方式分析
  16. 训练样本裁剪,背景裁剪,yoloV5裁剪样本检测
  17. C# 通过RS-232 读取 34401A万用表电压
  18. “海大与我“ Scrum Meeting(第十周会议记录)
  19. 利用ipv6技术,废旧笔记本变成server
  20. 【钛坦白】傲游创始人陈明杰 :区块链项目投资的三板斧

热门文章

  1. 【卡号识别】基于matlab分割法银行卡数字识别【含Matlab源码 312期】
  2. 【光学】基于matlab夫琅禾费圆孔衍射【含Matlab源码 062期】
  3. ai人工智能的数据服务_可解释的AI-它对数据科学家有何影响?
  4. linux服务器做301跳转,linux主机如何实现301重定向
  5. mysql 局部变量集合_mysql全局变量和局部变量
  6. 计算机等级的判断,计算机等级考试一级WPS判断题及答案
  7. python简易版猜单词游戏_Python实现简单的猜单词小游戏
  8. mysql 表的增删改查_MySQL数据表的增删改查
  9. HDU 1394 Minimum Inversion Number(线段树求逆序对)
  10. Kafka多数据中心部署灾备三要素