介绍
在上一篇文章《
彻底解决RecyclerView与ScrollView滑动冲突问题,并实现RecyclerView悬停导航栏
》中,我讲述了如何解决ScrollView与RecyclerView的滑动冲突问题。时隔几个月,我对这样的程序结构有很多的反思。当初这样嵌套,其实最主要是为了实现悬停。那么悬停的最好的实现方式就是这样去解决滑动冲突吗?
答案或许是否。当然,几个月前,我设计出ScrollView嵌套RecyclerView的框架时,我还不承认。不过,在程序上线几个月后,用户不断反馈,滑动过程中在需要手势传递的两个点上会出现手势不连贯的现象。经过反复调研,我终于下定决心,采取了另外一种实现方法——多类型RecyclerView。这种实现方式,不会出现手势不连贯的问题。
实现思路
上面的红色部分是RecyclerView的一种item,中间的黄色导航栏是RecyclerView的一种item,下面的蓝色列表是RecyclerView的一种item。在滑动到导航栏位置时,将与导航栏布局一样的一个view显示出来。
实现思路其实非常简单,具体实现可参考
demo(点击下载)
。
另外,我的另一篇文章《
多Item类型的RecyclerView替代scrollView
》介绍了如何优雅地实现多Item类型RecyclerView。
如有任何问题,可邮件联系我zhshan@ctrip.com