2017-10-26 20 views
1

私は、RecycleViewのプリフェッチされたアイテムの数を制御するために、サポートライブラリ25.1で導入された新しいAPIを使用して、ビューをプリフェッチすることによってイメージのグリッドをスクロールしながらユーザーエクスペリエンスを向上させようとしています。RecycleViewのsetInitialPrefetchItemCountが機能しない

また、実際にバインディングが行われたかどうかを確認できるように、ViewHoldersのログを追加しました。

void bind(final Photo photo, int position) { 
    // I expcet to see 30 logs without event scrolling as the intial set to 30. 
    log.d("binding photo: " + photo.getId()); 
    loadPhoto(photo); 
} 

しかし、私は100枚の画像のリストをロードして、それは、働いていないように、それはそうですが、私は(ちょうど目に見えるアイテムをフェッチする)少数のログエントリを参照してください、私はと30で見ることを期待したいです私はそれがそうであるように設定しました。

答えて

0

ドキュメントによると、これは内部のRecyclerViewでのみ機能します。

ドキュメント:isItemPrefetchEnabled

このLayoutManagerののRecyclerViewが別のRecyclerView内にネストされたときにプリフェッチする必要がありますどのように多くのインナーアイテム定義し、collectInitialPrefetchPositions(int型、LayoutPrefetchRegistry)にプリフェッチする項目の数を設定します。

+0

この記事によると、それは、ネストされたリサイクルビューに対してだけではなくです: https://medium.com/google-developers/recyclerview-prefetch-c2f269075710 –

+0

記事は述べています:ネストされたRecyclerViewsため、この作業を実行します[.. ]これは難しいです...これは、LinearLayoutManagerのv25.1の新しいAPI、setInitialItemPrefetchCount()を使用する理由です。このAPIは、RecyclerViewを満たすためにプリフェッチするアイテムの数をシステムに通知します – FlanschiFox

関連する問題