使用SwipeRefreshLayout+CoordinatorLayout+AppBarLayout+TabLayout+ViewPager+Fragment+RecyclerView 实现首页悬浮效果遇到一些问题,做个记录:

首先我的布局结构大概是这样子的:

<SwipeRefreshLayout>

<CoordinatorLayout>

<AppBarLayout> <轮播图/> <首页按钮入口/> <TabLayout/>  </AppBarLayout>

<ViewPager/>

</CoordinatorLayout>

</SwipeRefreshLayout>

ViewPager里面当然是Fragment了,Fragment里面是使用RecyclerView(使用的是一个可以加载更多的RecyclerView)

不过这不是重点;

第一个问题:刷新问题冲突,解决是监听AppBarLayout滑动开启关闭SwipeRefreshLayout是否可刷新,

实现以下:

AppBarLayout.OnOffsetChangedListener接口就可以了,这里goTopLayout是我返回顶部按钮显示判断,不用可以忽略;

public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
    if (verticalOffset >= 0) {
        mSwipRefreshLayout.setEnabled(true);
    } else {
        mSwipRefreshLayout.setEnabled(false);
    }

if (Math.abs(verticalOffset) >= appBarLayout.getTotalScrollRange()) {
        goTopLayout.setVisibility(View.VISIBLE);
    }else{
        goTopLayout.setVisibility(View.GONE);
    }
}

第二个问题:滑动到一定距离如何返回顶部:逻辑是先让RecyclerView返回顶部 然后调用AppBarLayout折叠就可以完成返回顶部操作,代码实现如下:

AppBarLayout展开折叠设置:appBarLayout.setExpanded(true,true);

RecyclerView 返回顶部直接mRecyclerView.scrollToPosition(0);

第三个问题:发现折叠+切换Fragment偶尔出现AppBarLayout卡住,无法滑动问题,只有ViewPager的RecyclerView部分可以滑动,后面解决如下:

初始化完成后调用一下代码就可以解决问题

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();
behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() {@Overridepublic boolean canDrag(@NonNull AppBarLayout appBarLayout) {return true;}
});

第四个问题:在RecyclerView属性中加入android:nestedScrollingEnabled="false" 导致高系统版本无法联动,触发事件单一处理AppBarLayout或者RecyclerView,也就是手指滑动RecyclerView就只滑动RecyclerView部分,需要滑动AppBarLayout要手动滑动AppBarLayout部分内容才可以,这个问题是因为对上面属性不了了解导致,本想解决有点卡顿问题,最后加入这一属性查了很久才找到问题。

第五个问题:强行加入第五个问题,就是RecyclerView数据为空时加入EmptyVIew无法滑动问题,EmptyView使用

NestedScrollView包含应该就可以了。

SwipeRefreshLayout+CoordinatorLayout+AppBarLayout+TabLayout+ViewPager+RecyclerView 刷新,不能滑动等问题相关推荐

  1. SwipeRefreshLayout+CoordinatorLayout+AppBarLayout+TabLayout+ViewPager+RecyclerView 嵌套,最后一项显示全

    SwipeRefreshLayout+CoordinatorLayout+AppBarLayout+TabLayout+ViewPager+RecyclerView 嵌套,导致RecyclerView ...

  2. 小牛的安卓笔记-----底部导航栏的实现以及用TabLayout+ViewPager+Fragment实现页面滑动切换

    昨夜西风凋碧树,独上高楼,望尽天涯路. 今天难得有时间,准备写一写我们在APP中经常用到的页面形式,废话不多说,直接一张图看看页面效果你就知道为啥是常用的页面形式.先看看逻辑和最后的效果是怎么样的: ...

  3. TabLayout+ViewPager实现选项卡动态滑动效果

    1. 前提准备 今天回顾了下TabLayout与ViewPager的联合使用,顺便写个demo来加深下理解.首先要明确TabLayout是design下的,并非系统原来的widget下的.所以首先在a ...

  4. android 页卡切换实现,TabLayout+ViewPager实现选项卡切换效果

    原来项目中一直使用tabhost做切换效果,最近在整理代码,决定放弃tabhost,使用google自带的切换布局TabLayout . 其实TabLayout实现切换效果还是蛮简单的,跟tabpag ...

  5. Android自定义控件之RecyclerView打造万能ViewPager TabLayout(仿今日头条Tab滑动、Tab多布局、indicator蠕动、自定义indicator、文字颜色渐变)

    文章目录 GitHub:https://github.com/AnJiaoDe/TabLayoutNiubility 该轮子特异功能如下: 使用方法 注意:该轮子适用于androidx中的ViewPa ...

  6. Android之解决CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+RecyclerView里面再嵌套RecyclerView滑动颤抖问题

    1 问题 主页面用的是这种结构 CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+RecyclerView(里面再嵌套RecyclerVie ...

  7. android布局高度大于屏幕高度,Android CoordinatorLayout + AppbarLayout + Viewpager布局超过屏幕高度...

    当我把Viewpager与CoordinatorLayout + AppbarLayout + Viewpager一起使用时,viewpager超出屏幕大小,请帮我解决.Android Coordin ...

  8. TabLayout+ViewPager+Fragmet+RecyclerView结合的小demo

    前两天想熟悉一下tablayout,所以就弄了个特别简单的tablayout+viewpager+fragmet+recyclerview结合的小demo.虽然特别简单,但还是遇到了不少问题. tab ...

  9. CoordinatorLayout+AppBarLayout 提供最佳浏览体验

    博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/ ...

最新文章

  1. 一文区分什么是「过拟合」和「欠拟合」?
  2. Python小白学习之函数装饰器
  3. android-Activity
  4. 零基础带你五行代码实现聊天机器人-再这么玩?咱还能做朋友吗?
  5. java 连接不上hbase_无法远程连接到Hbase
  6. HBase(五):HBase基本API操作之CRUD
  7. 1、Canvas的基本用法
  8. 160 - 44 defiler.1.exe
  9. 【英语学习】【Level 07】U04 Rest and Relaxation L4 A room fit for a king
  10. 两个数组各个数相加或相乘变成一个矩阵求第K大
  11. Android Banner Indicator 轮播图指示器
  12. 头条App项目测试实战(七)实名认证功能用例设计
  13. mysql 存储类型文本最大长度longtext
  14. 让杂牌蓝牙适配器也安装上windows 自带的驱动程序
  15. 如何有效提升你的研究能力?
  16. USBTO232的几个问题,乱码,回车无效,驱动安装
  17. ZXing改横屏识别为竖屏识别
  18. 不用找了,50个备课网站一网打尽
  19. /*数电 译码器3-8变4-16
  20. 全国计算机应用技术证书考试文字处理,全国计算机应用技术证书考试文字处理考试大纲2015年版考试.DOC...

热门文章

  1. 危机感,你时刻应该有
  2. 芯片IC附近为什么都放0.1uF的电容?这样做正确吗?有什么依据吗?
  3. 什么是Arduino
  4. 个人实践,B450锐龙3600安装原版win7方法
  5. UVA818解题报告
  6. 深度学习笔记其七:计算机视觉和PYTORCH
  7. CASCADE: Contextual Sarcasm Detection in Online Discussion Forums(2018)论文笔记
  8. 1255B. Fridge Lockers Codeforce题解
  9. 二、Cent OS 7 下MySQL安装(安装版)
  10. 1.莫尔斯编码和布莱叶盲文