[英]How to delay loading of RecyclerView items when it is present in ViewPager2 in android?
我正在使用 ViewPager2 在各個片段中使用 RecyclerView 顯示片段中的數據。 有2個片段。 每個片段包含 1 個 RecyclerView。 一切正常,只是一個小問題,當我啟動包含此 ViewPager2 的活動時,如果存在大量項目,則活動開始非常緩慢。 我知道對於整個場景還有其他解決方案,例如使用 ConstraintLayout 減少復雜的 UI 等。但就我而言,我優化了所有這些,但我的活動啟動時間仍然很慢。
所以現在我想通過以下方式做這些事情:
所以我這樣做是使用:
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 毫秒作為延遲時間。 我不想要這個硬編碼的值。 那么如何在整個情況下使用適當的延遲時間呢?
在activity內部創建組件——創建activity本身的過程,所以在創建所有內部View之前,不會創建Activity本身。 在這里閱讀更多
通過將復雜而冗長的計算轉移到單獨的線程來解決這些問題。 您可以使用開箱即用的異步通信機制,例如 RxJava。 因此,在另一個線程上,您創建視圖組件,而在 UI 線程上,您只顯示它們並與它們交互。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.