美文网首页
Android-网络请求与RecyclerView显示空白页面问

Android-网络请求与RecyclerView显示空白页面问

作者: LongSh1z | 来源:发表于2019-05-23 19:08 被阅读0次

    1.问题描述

    在activityA跳转到activityB(主要控件为recyclerview)时一开始为空白,手指往上移动一小段距离之后数据才显示出来。一开始模拟器上运行没问题,但是多重复执行这个动作之后也出现了几次空白屏的情况,在真机上大部分都是空白屏。

    这里是直接跳转到activityB后的效果图(已证明跳转是没问题的)


    bug.gif

    2.解决过程

    一开始以为是recyclerview版本的问题,因为它的版本是28,而我的真机是26的。但上网百度了很多之后发现recyclerview并不存在这个问题,只是一些子项view的的尺寸问题而已。然后刚好今早有安卓课,我又去问了老师,老师说是recyclerview控件和activity刷新的问题,因为模拟器上和真机的效果不同,然后也是没能解决。接着我就回去自己到处打印日志,因为我觉得有可能是网络请求的数据还没放进ArrayList数据集,recyclerview就已经setAdapter(ArrayList)了。果然,在打印的日志中ArrayList的size为0,这就正好印证了我的想法。

    3.解决方案

    既然是网络数据不同步的问题,那就可以利用一些异步消息解析机制handler咯。因为我用的网络请求是同步的,需要新开一个线程。那么就可以在放数据进ArrayList的操作之后调用handler的sendMessage方法,然后在handler的handleMessage方法里放进recyclerview的setAdapter(ArrayList)方法就行了。

    主要代码如下:


    子线程获取数据并放进ArrayList.png
    图片.png
    图片.png

    相关文章

      网友评论

          本文标题:Android-网络请求与RecyclerView显示空白页面问

          本文链接:https://www.haomeiwen.com/subject/ldobzqtx.html