問題タブ [android-paging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - AsyncListUtil とデータ ページング ライブラリの違いは?
Android では、新しいページング ライブラリが導入されていますData Paging
。以前は、AsyncListUtil
非同期データ読み込みを処理するために RecyclerView と連携するクラスがありました。
Data paging
また、RecyclerView でも動作し、アーキテクチャ コンポーネント関連のものに加えて、AsyncListUtil と同じタスクを実行します。
アーキテクチャ関連のものを除いてAsyncListUtil
、実際の違いは何ですか。Data paging library
android - ページング ライブラリ - ページとサイズを取得する API を使用したネットワーク + db の境界コールバック
短い質問:
BoundaryCallback
ページ+サイズを使用して新しいページとクラスをロードするAPIを使用して、アーキテクチャコンポーネントからページングライブラリでデータベース+ネットワークを処理する正しい方法は何ですか?
調査と説明
現在、アーキテクチャ コンポーネントのページング ライブラリで使用されるクラスBoundaryCallback
は、リスト内の要素のインスタンスをパラメータとして受け取りますが、この要素がどこにあるかという実際のコンテキストはありません。と で発生しonItemAtFrontLoaded
ますonItemAtEndLoaded
。
私の Api は、次のデータのチャンクをロードするために、ページとページのサイズを受け取ることになっています。ページ リスト ビルダーの一部として追加された境界コールバックは、プリフェッチ距離とページ サイズに基づいて、データの次のページをロードするタイミングを通知することになっています。
onItemAtFrontLoaded
Api はページ番号とページのサイズを提供する必要があるため、とで提供されているリストから要素の 1 つを受け取るだけでは、それを Api に送信する方法がわかりませんonItemAtEndLoaded
。このリンクの Google の例を確認すると、最後の要素の名前を使用して次の要素を取得しますが、ページ + サイズの Api には適合しません。
を使用するネットワークのみの別の例もありますがPagedKeyedDatasource
、それをデータベースと BoundaryCallback と組み合わせる方法についてのサンプルや手がかりはありません。
編集:これまでに見つけた解決策は、最後に読み込まれたページを共有設定に保存することだけですが、それは汚いトリックのように聞こえます。
公式の意見については、 https://github.com/googlesamples/android-architecture-components/issues/252#issuecomment-392119468を参照して ください。