在android的ViewPager2中出现RecyclerView项时,如何延迟加载?
我使用ViewPager2在各个片段中使用RecyclerView显示片段中的数据。有两个片段。每个片段包含1个RecyclerView。一切正常,只是一个小问题,当我启动包含此ViewPage2的活动时,如果存在大量项目,则活动启动非常慢。我知道整个场景还有其他解决方案,例如使用ConstraintLayout减少复杂的UI,等等。但在我的例子中,我优化了所有这些,但我的活动启动时间仍然很慢 所以现在我想用下面的方式做这些事情:在android的ViewPager2中出现RecyclerView项时,如何延迟加载?,android,android-recyclerview,android-fragmentactivity,android-viewpager2,Android,Android Recyclerview,Android Fragmentactivity,Android Viewpager2,我使用ViewPager2在各个片段中使用RecyclerView显示片段中的数据。有两个片段。每个片段包含1个RecyclerView。一切正常,只是一个小问题,当我启动包含此ViewPage2的活动时,如果存在大量项目,则活动启动非常慢。我知道整个场景还有其他解决方案,例如使用ConstraintLayout减少复杂的UI,等等。但在我的例子中,我优化了所有这些,但我的活动启动时间仍然很慢 所以现在我想用下面的方式做这些事情: 加载活动->显示加载。。。TextView->在调用内部Recy
final MaterialTextView loadingMTV = findViewById(R.id.loadingMTV);
loadingMTV.postDelayed(new Runnable() {
@Override
public void run() {
loadingMTV.setVisibility(View.GONE);
recyclerViewAdapter.setTasks();
completedRecyclerViewAdapter.setTasks();
//setTasks() will contain notifyDatasetChanged() related logic
}
},500);
因此,它会将内部内容加载延迟500毫秒。现在我的活动开始时间和往常一样。一切正常。只有一个问题,我用500毫秒作为延迟时间。我不想要这个硬编码的值。那么,在整个情况下,如何使用适当的延迟时间呢
有没有办法先创建空片段,然后向该片段添加recyclerview,然后再加载数据?因为这两个空白片段,所以活动可以尽快开始?这是很少练习的。最好的选择是使用异步。考虑RXJava或Looper-/HANDLE或JavaLang.thRead在我的案例中,我发现用户界面创建的CurryReVIEW项目占用了太多时间。也就是说,我想在RecyclerView中加载的数据很快变得可用,但RecyclerView项目的UI占用了太多时间。那么在我的例子中,哪一个更可取?有多慢,数据集有多大?我在布局中添加了一个TextView,然后在找到该TextView后,我在其post()中添加了一个runnable,将在10毫秒后运行。在那个runnable里我找到了recyclerview记录。通过使用这种方法,我解决了延迟的活动加载问题。我的数据集没有那么大,但recyclerview适配器的onbind()太复杂了。所以我也简化了代码。不管它有多复杂,我们都不应该修正它。我增加了额外的延迟,你能告诉我们你是如何测量延迟的,并得出了时间吗?因为您的代码中可能有一些小的东西,这可能是所有这些问题的原因,现在在添加延迟之后,它变得更加复杂,将来可能会产生一些其他问题。我只是懒散地加载recyclerview数据。首先,我加载空的recyclerview并显示“获取”文本视图。然后,我在runnable中加载textview的post()中的实际数据。