SrcollView嵌套Recycler所遇到的Bug
来源:互联网 发布:西瓜影音播放网络文件 编辑:程序博客网 时间:2024/06/08 06:40
很久没有更新博客,并不是忘了,而是到了新公司,一直在忙着做公司的产品。
趁着测试测试的功夫,来写写,记录一下这几个月当中开发遇到的一些问题,以及解决方法吧。
一、ScrollView嵌套RecyclerView时的滑动冲突:
我相信对于大多数开发者而言,都遇到过这种问题吧。一个布局当中不光只有一个RecyclerView,有可能还有其他的View,当RecyclerView滚动的时候,要当View跟着其一起滚动。当时在做这块的时候,想当然的就是一个:
<ScrollView>
<LinearLayout>
<View/>
<RecyclerView/>
</LinearLayout>
</ScrollView>
写出来之后,随手拿了一个手机进行测试,哎,没毛病,就继续搬砖了。。。谁知道到后来测试给我提了一个bug,类似
仔细看了一下,心想还有这种操作?
分析了一下我的布局,类似这样:
这个时候才发现,啊,原来是这样啊。之前也遇到过这样的问题,一直没有放在心上,这里再遇到这个问题,就把这个问题写在博客里面吧。
ScrollView,在其内部当中还有一个需要滚动的视图是,如果单单只是一个RecyclerView的话,貌似也不需要ScrollView,关键在于ScrollView里面嵌套的是一个子布局,子布局当中有RecyclerView和其他布局的时候,这个时候,当你滑动RecyclerView时,ScrollView滑动时
内部的RecyclerView会拦截外部的滑动时间,移到其内部进行解决。这个时候,我们想到的办法有那些呢:
1,重写RecyclerView的onTouch方法
2,换外部的滑动控件
这里我采用的是第二种方法,即将ScrollView换成NestedScrollView,再来看一下效果:
哎,好像可以了,但是呢,细心一点有没有发现问题,当你滑动页面的时候,变得特别的卡顿,页面不流畅。
不着急,在代码中再加入一行代码即可:
mRecycler.setNestedScrollingEnabled(false);再来看下效果:
毫无卡顿,大功告成,是不是~
这里再说一句,当你的RecyclerView设置到这行代码的时候,你的RecyclerView就失去了复用的功能,即这里只适用于你的RecyclerView条目不是很多的情况下,不然的话会很占内存,有可能会导致你的程序内存溢出,最好的方式还是去重写SrcollView或者内部RecyclerView的onTouch方法。
好了,第一个bug就先介绍到这里。大家工作愉快~
- SrcollView嵌套Recycler所遇到的Bug
- Android SrcollView内嵌套ViewPager时的滑动冲突处理
- 我所遇到的12306bug
- android 所遇到的BUG总结
- 编译busybox所遇到的bug
- SrcollView嵌套ListView--android实用技巧
- 解决srcollview嵌套recycleview冲突
- 混合app,网页嵌套在ios上遇到的bug
- 从源码角度分析SrcollView嵌套ListView显示不全的问题
- MFC vs2012中所遇到的BUG及解决方法
- ScrollView嵌套Recycler View嵌套冲突解决
- srcollview 嵌套ListView ListView 再嵌套gridview 焦点滑动问题
- 关于解决多个viewpager嵌套所遇到的事件传递问题
- Android Recycler的使用
- Recycler的一些笔记
- recycler'View的使用
- Recycler的使用
- Ubuntu64位编译Linux0.0.1所遇到的Bug(copy的,之后会总结)
- 浏览器跨域-CORS
- Tour HDU
- MySQL逻辑并行复制的实现
- 成都小孩买互助金
- IT行业三大定律
- SrcollView嵌套Recycler所遇到的Bug
- 简单工厂模式
- opencv(c++)图像处理(imgproc模块)[2]
- WebService(1)——使用JDK开发WebService
- MySQL的数据类型
- android databinding 常用语法
- Android下拉选择控件
- mysql共享iscsi
- codevs 1230 元素查找 二分