有没有人见过这种奇怪的行为,在另一台RecyclerView上有一个RecyclerView?任何线索都表示赞赏!
设置:
重现问题:
如果我以第一个片段为例,然后向下滚动以便开始加载下一页,然后立即切换到viewpager中的第三个片段,然后在完成加载之前再次返回,然后我看到屏幕上带有进度条的先前项目,以及滚动和接受点击后面的真实列表。我无法与之前的项目互动,这些项目看起来像是以某种方式被烧到了屏幕上。太奇怪了。滚动时,我只能通过项目之间的边距看到真实列表。希望我的解释有意义!如果不是,我很乐意回答问题或进一步澄清。
我不会在配置更改(例如轮换)上遇到此问题,只有在使用ViewPager从一个片段切换回来时才会出现此问题,并且仅在加载期间。单个(手机)和双窗格(平板电脑)版本都会发生。这可能是ViewPager的一个问题吗?如果轮换没有发生,这必然意味着片段保存状态或自我恢复的方式不是问题吗?像往常一样,它可能很简单但我目前迷失了。希望有人看到这个或知道它可能是什么。
对于任何有兴趣的人,这篇The ghost of layout in viewpager and fragment帖子解决了这个问题。我不确定除了增加ViewPager中活动页面的数量之外是否还有其他方法。当我进行搜索时,我没有看到这篇文章,其他人也提到过。我等着他们回答,所以我可以给他们分数。然而,尽管这有效,但我仍然不确定为什么问题首先发生。如果有人可以回答这个问题,那么我可能会接受这个问题作为答案。只有在我向Volley发送请求以下载更多内容并将进度条设置为活动状态时,才会出现此问题。在onPause期间,我取消这些下载并将进度条设置为非活动状态。如果我没有请求任何下载,那么在布局上导致它被冻结的情况会有什么不同呢?它似乎仍然很奇怪。我觉得我在这里缺少一些东西。此外,通过删除所有视图,我现在有这个小错误(如果你想挑剔),如果我向下滚动以获得第一个选项卡上的更多内容,然后在完成下载之前单击第三个选项卡,然后旋转屏幕,然后返回第一个标签,之前的项目不会显示在屏幕上,直到它加载了新内容为止;屏幕只是黑色的进度条。如果没有轮换,我可以在加载新项目时查看列表中的前一项。我希望所有这些都有意义!
如果您对这个问题感到好奇并希望自己尝试一下,我还会将源代码放在https://github.com/mvescovo/moviehotness。只需注释掉ViewMoviesFragment.java中的mLayoutManager.removeAllViews();
,在编写本文时就是第261行。