2017-12-08 2 views
1

私は本当に新しく導入されたAndroid Architecture Componentsに興味があります。しかし、私は「ページング」ライブラリが何であるかを理解しているとは言えません。なぜ新しいページングライブラリを使用する必要がありますか? (Android Architecture Components)

データページ設定のヘルプを提供するのが目的だと思われます。しかし、それは簡単なことではありませんか?私はちょうど私のコードのどこかにいくつかの整数値を保持し、後で自分のネットワーク/部屋のデータベースクエリで使用することができます。

私はここで何か不足していることは明らかです。ページングライブラリの必要性を理解してください。

+1

「これは簡単なことじゃない? - あんまり。 「コードのどこかにある整数値を保持し、後でネットワーク/ルームデータベースクエリで使用できるように」 - 「整数値をどこかに」保持することでユーザーが大量のデータをスクロールできるようにする方法は不明です例えば、「RecyclerView」に設定されたデータ。おそらくあなたはあなたの簡単なアプローチを示す[mcve]を提供することができ、それをページングライブラリと比較して対比することができます。 – CommonsWare

+0

ネットワークapi/localデータベースからデータを取得し、その結果をlistview/recyclerviewに表示することを想定します。私は値20の最後のIntegerを持っています。これは、一度にデータソースからフェッチするデータ量になります。オフセットのための別の整数、初期値は0です。データソースからさらにデータをフェッチするときのオフセット値を更新します。 – user6650650

+0

@ user6650650これを行うと、非同期でロードする必要があるためスクロールが不安定になり、最後にデータが読み込まれるまでスクロールできなくなります。ページングは​​あなた自身で解決できますが、それほど問題はありません。私は実際に新しいページングライブラリを見ていないので、それがどれほど良い解決策であるかについてコメントするつもりはありません。しかし、間違いなく開発者の多くが助けてくれることは間違いありません。 –

答えて

1

ページングライブラリは実際にデータソースのデータページ付けに使用されています。このデータソースは、データベース内の単一のテーブルと同じくらい単純なものでも、独自のカスタムデータソースクラスに設定されたネットワークAPIのソース。

ページネーションライブラリは、データソースからのスムーズなページ作成を提供するだけでなく、既に示されている個々のリサイクルビュー項目へのシームレスなバックグラウンド更新も提供します。私は個人的に何個の項目が変更されているのか分からないときにnotifyDataSetChangedを呼び出すことを嫌い、要求されたリストに対して現在表示されているリストとバックグラウンドのスレッドを別々に挿入、削除、更新する機会を楽しみにしています。

pagedListAdapterからデータソースまでの完全なアーキテクチャは、懸念事項を完全に分離し(テストを容易にします)、それに従うと、よく使用される(よく実装されていない)側面がうまく実装されます。これにより、個々のソフトウェアの品質、ユーザーと開発者の経験(それはかなり簡単です)を向上させ、全体としてアンドロイドブランドを向上させます(全体としてアンドロイドソフトウェアの品質を向上させることによって)。

関連する問題