6

いくつかのセットでJSONを返すバックエンドAPIエンドポイントがあります。各セットには10 lines of Jsonが含まれています。例えばRecyclerViewをデバイスのスクリーンサイズに合わせて使用​​するには?

curl http://www.something.com?getData=0first 10 elementsを与えるだろうとcurl http://www.something.com?getData=1は、その次のセットを返します。

私は、endpointsからデータを読み込むためにRecyclerViewStaggeredGridViewを使用しています。今私は最初のセットを取っているだけで、完璧に動作しています。

私が探しているのは?

RecyclerViewのデータは、画面サイズごとにAndroidにロードするにはどうすればよいですか。例:

デバイスhdpiは、RecyclerViewに25 staggeredGridViewをロードできるとします。だから、ここの順序でendpoints要求:

http://www.something.com?getData=0 // will fetch 0-10 
http://www.something.com?getData=10 // will fetch 11-20 
http://www.something.com?getData=10&skip=5 // will fetch 21-25 

は、どのように私は動的プロセスの上に作ることができます。すべての画面サイズで機能するように

ところでこれは私がStaggeredGridViewアダプタにデータをロードしています方法です:私はどのくらいGridは、私は、デバイスに応じて記入する必要があることを知ったならば、私はその後、

mRecyclerView = (RecyclerView) mActivity.findViewById(R.id.staggering_grid); 
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); 
mAdapter = new StaggeredGridAdapter(mContext); 
mAdapter.addItems(response); 
mRecyclerView.setAdapter(mAdapter); 

解決策

  • 私は期待される数字を埋めるためにデータを取得するまで、単に要求をすることができます。
  • Event Busを使用して、Retrofitに通知を送信して、デバイス画面がいっぱいになるまで別の通話を発信することもできます。

良いアプローチですか?はいの場合はどうすれば達成できますか?

+1

常に最大の画面を埋めるために必要な数のアイテムを取得するためのオプションですか? xxxhpdiが画面を埋めるために50の項目を必要とするように、常に50のバッチでフェッチしますか?画面が小さくなるとデータの取得頻度が低くなり、画面が大きくなるほどビューを満たすのに十分なアイテムが必要になります。 –

+0

いいえ、不可能です。エンドポイントは常に一度に10アイテムを返します。 –

+0

@TimCastelijnsしかし、どういうわけかxxxhdpiへの5回のリクエストを順番に行い、一度にデータをロードするとどうなりますか? –

答えて

1

あなたができることは、10回ではなく1回に50回以上データをロードすることです。ディスプレイ全体にデータを格納するのに十分なデータがあります。リクエストごとに10アイテムしか得られない場合、異なるスレッドからの要求をアダプタに追加し、すべての要求が正常に完了したらビューを更新します。したがって、この方法は、あなたは文句を言わないすべての項目を要求し、設定を任意のデバイスの画面に表示するために十分なアイテムを持っているために必要とさ

+0

ここで少し混乱します: 私は2つのデバイス 'xhdpi'と' xxxhdpi'を持っているとしましょう。 'xxxhdpi'では、1つのディスプレイに50項目を読み込むことができます(スクロールせずに)。あなたの解決策によると、私は5つの要求を順番に行うことで最初の50項目を取得します(あまり時間がかからないのでできます)。ユーザーが下にスクロールしようとすると、次に50項目を取得します。しかし、一度に15個または18個のアイテムしか表示できない「xhdpi」のシナリオを考えてみましょう。どのくらいのアイテムを取得する必要があるのか​​を知るにはどうすればいいのですか?同じアイテムの量を正確にするために必要なすべてのスクロール –

+0

別々のスレッドですべてのリクエストを発生させるときは理想的です。 5回の成功した回答に達すると、成功したレスポンスのカウンタが新しいデータでリセットされ、カウンタがリセットされます。 ADAPTERが 'itemposition%50-5'のように表示されたり、次の50項目を要求したりすると、ほとんどのサーバーサイドページのように不確定な進行状況ダイアログが表示されることがありますリストビューを行う – Bhargav

+0

最後に、私はすべての呼び出しで50個の項目を取得するあなたの解決策を検討しています。あなたは私に示唆してもらえますか、チュートリアルのリンクを私に教えてください。 –

関連する問題