RecycleView的坑

RecycleView想必都不陌生,然而有些时候它还是让人比较蛋疼的.比如,在5.0以上的机器中它居然不能正常显示~!

我在做项目的时候用的一般是4.0~5.0的模拟器,当时做了一个RecycleView显示两行八条数据.这个很简单,写完打开模拟器挨个看看,没问题,ok,提交上去.

结果没过多久测试就找到我:"你这个怎么只有四条数据啊,不是8条吗?"

我一脸的懵逼,百度之后才知道RecycleView还有这个坑,解决办法也很简单,就在RecycleView外边随便嵌套一个ViewGroup就行了.有的教程说重写LinearLayoutManager,GridLayoutManager那些布局管理器,让他们计算高度什么的,感觉挺麻烦的,没有尝试.

之后没几天, 又做了个上下拉刷新的,还要仿某东的布局切换.布局切换简单啊,RecycleView一键搞定,但是上下拉刷新就有些问题了.你要自己写一个也行,比较麻烦,虽然网上都有,但是需要高版本的支持,所以我就用了比较简单的PullToRefreshScrollView来做.

但是问题又来了,上下拉刷新没问题,数据都能正常拿到,但是在5.0以上手机,在进行上拉下一页加载的时候,rv一直处于底部状态,你不下滑一下再上滑,根本不会显示下面的数据.为啥?显然是下滑之前RecycleView并没有正常计算出当前该有的高度,所以一直觉得已经到底了.

没有办法,再给它套一个ViewGroup,问题解决.

但是还有问题,5.0以上它滑起来没有惯性了,看着不爽用起来也不爽.解决办法就是加代码:

GridLayoutManager grid = new GridLayoutManager(getBaseActivity(), 2);
grid.setSmoothScrollbarEnabled(true);
rvSearchGoods.setLayoutManager(grid);
rvSearchGoods.setNestedScrollingEnabled(false);

为你的布局管理器添加smoothScrollbarEnabled = true属性,为你的rv添加nestedScrollingEnabled = false属性,ok了,惯性滑动又回来了.

------------------------------

我错啦,不能随便嵌套ViewGroup,只有RelativeLayout才可以,也是醉了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值