0

我想了解什麼呢setRecycledViewPool方法實際上在下面的代碼 行,其中mrecyclerView是試圖瞭解SetRecycledViewPool方法RecyclerView

mrecyclerView.setRecycledViewPool(new RecyclerView.RecycledViewPool()); 

我讀了Android回收者視圖對象與回收視圖一起做文檔link,我仍然不明白它做了什麼清楚可以有人解釋我的使用和何時使用

回答

2

setRecycledViewPool(...)當我們有一個嵌套RecyclerView可能是有用的。例如,請參閱this博客文章。

+0

它確實使這個好多了意義now..thanks –

0

我沒有使用它自己,但從我能理解閱讀文檔它的一種方式來使用您回收視圖在一個RecyclerView與另一個。

因此,如果您有一堆裝滿卡片視圖的RecyclerView,並且您想要爲另一個RecyclerView回收這些視圖,則可以將其傳遞給共享的RecycledViewPool。現在兩個RecyclerView都將從共享視圖池中獲取。

+0

該死的..這聽起來很有趣......我肯定會想知道更多關於它,你可以用一些例子和實施解釋更多。 –

2

docs

回收的觀點池允許多個RecyclerView要分享的廢料觀點公共池。如果你有多個RecyclerView s的,如果你有多個數據集與同種商品的看法由ViewPager顯示使用同一個視圖類型,例如適配器它可能是有用的。

默認情況下,5 ViewHolder s的保持在池的特定viewType。如果你想改變這種計數,可以做到這樣:

recyclerView.getRecycledViewPool() 
      .setMaxRecycledViews(SOME_VIEW_TYPE, POOL_CAPACITY); 

this博客文章:

那麼我們該如何選擇池的最佳尺寸是多少?看來最佳的策略是在你需要它變大之前擴大它的範圍,然後再縮小它。實現這一點的一種骯髒的方式如下:

recyclerView.getRecycledViewPool().setMaxRecycledViews(0, 20); 
adapter.notifyDataSetChanged(); 
new Handler().post(new Runnable() { 
    @Override 
    public void run() { 
     recyclerView.getRecycledViewPool() 
        .setMaxRecycledViews(0, 1); 
    } 
});