RecycleView设置多个适配器(Adapter)无法显示布局

博客讲述了在RecycleView中设置多个适配器时遇到的问题,即在真机上点击切换适配器后布局无法显示。作者分析了原本的实现思路,即直接更换适配器,但发现需要每次都重新设置布局管理器。最终解决方案是在每次更换适配器前都重新获取并设置布局管理器,确保其为新实例。此问题在Android 6.0及以上版本尤为明显,低于6.0版本则不需要重复设置。
摘要由CSDN通过智能技术生成

问题

我想要为一个RecyleView设置多个适配器,实现切换布局的效果,在虚拟机上测试完全没问题,实现了点击更换适配器的效果。但是安装在真机上进行测试时发现点击后布局没有加载,整个RecycleView是空白的。

原本的实现思路

直接调用 RecycleView 的setAdapter() 来重置适配器,更换布局,可是失败了。仔细观察发现,每次在 onCreateView() 中更新 RecycleView 都会设置布局管理器 setLayoutManager() 。之前的想法是已经设置一次,那么 RecycleView 就没有必要再设置,直接调用 setAdapter() 来替换适配器。

解决方案

既然无法更新,那么直接将 RecycleView 当作新加载的实例,全部重新获取。包括布局管理器的设置。果然,在调用每一个 setAdapter() 前都重新调用 setLayoutManager() 确实产生了效果,真机上测试完美通过。

// 获取瀑布流的布局管理器
StaggeredGridLayoutManager layoutManager = 
    new StaggeredGridLayoutManager
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值