fragment配合recyclerview和cardview使用问题

在项目开发中,发现reyclerview的margin在同一个fragment的切换下会有细微差别,同样的fragment类,首页先创建一个fragment对象,然后用户点击第二个tab时再创建第二个fragment对象,这时候通过切换两个fragment就会发现,不管是recylerview的margin还是添加的itemdecoration都会有细微的区别。

 

 

没有很好的思路,只能在切换tab的时候,查看一下recyclerview的宽度和里面item的宽度。通过切换发现两个fragment对象里面的recyclerview的width大小并不相同,而我的recyclerview的外面还有一层smartresfresh,查看smartrefresh的width确实一样的。这使得我更懵了,这个不理解先放一边,继续看itemdecoration的大小,不出所料也是不一样的。而这里的能判断的地方就出现了,item的间距是自己写的一个简易的分割线,需要传进去一个高度,这个高度是通过dp转px算出来的。立马查看了一下这个转换方法返回的值是否一样,最后得出的结果是density的值就不一样,一直以为同一部机器的density应该是一直一样的,现在这个结果又颠覆了我的预想。

 

有了上面的发现,我又打了log,发现density最开始都是大一点儿,然后再获取就是比较小的。通过上面的发现,我猜测recyclerview的margin也可能是这个问题导致的,为了避免这个问题,只能把recyclerview的margin加到了item的margin上,毕竟item的渲染会比recyclerview的晚一些(通过接口)。

item的分割线的大小,我暂时的解决办法是只获取一次density的值,进行缓存,同一个页面用相同的缓存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值