CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题

因为最近要把学校的电子商务的比赛的项目做完,主界面是一个标题栏悬停,我是用CoordinatorLayout嵌套RecycleView做的,但是做完以后发现一个问题,就是当RecycleView下拉如果不是滑动到第一个item,再滑动AppBarLayout,就无法下拉了,卡住了,我以为这个问题找了好多方法,也问了好多人,觉得是滑动冲突问题,虽然有这个问题的存在,但是单单靠禁止recycleview的滑动,是无法解决这个问题


CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第1张图片

这个是我在CoordinatorLayout中嵌套的,总的布局是这样子的:


CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第2张图片

后来我就想,如果我判断是不是只要监听recycleview滑动到了第一个item,就可以让appbar顺利滑动下拉

我现在就展示我的代码:


CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第3张图片

为recycleview设置一个监听器,监听状态的变化,里面有一个参数是state,我们看看源码这么说的?


CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第4张图片

中文意思就是时候recycleview没有滑动

然后我们就用LinerLayoutManager获取recycleview的第一个item,因为第一个item的position为0,然后判断,当为0的时候,appbar就展开

setExpanded(Boolean,Boolean);这个方法我们看一下源码:


CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第5张图片
CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第6张图片
CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第7张图片

第一个参数,大家也看到了,是要传入什么,ture的话就是强制展开,第二个也要为true,就是等待被展开,一般是同时设置为true,然后效果是

当recycleview下拉,appbarlayout也展开了,但是还有一个问题,就是有弹簧效果,这个看需求,看你要不要这个效果,我觉得还是可以的,,毕竟挺好玩的。

我的项目源码我已经上传到了GitHub,希望大家mark一下,毕竟资源共享

我的git项目


CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题_第8张图片

你可能感兴趣的:(CoordinatorLayout嵌套RecycleView,RecycleView下拉,AppbarLayout无法展开问题)