いくつかのセットでJSON
を返すバックエンドAPIエンドポイントがあります。各セットには10 lines of Json
が含まれています。例えばRecyclerViewをデバイスのスクリーンサイズに合わせて使用するには?
: curl http://www.something.com?getData=0
はfirst 10 elements
を与えるだろうとcurl http://www.something.com?getData=1
は、その次のセットを返します。
私は、endpoints
からデータを読み込むためにRecyclerView
とStaggeredGridView
を使用しています。今私は最初のセットを取っているだけで、完璧に動作しています。
私が探しているのは?
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
に通知を送信して、デバイス画面がいっぱいになるまで別の通話を発信することもできます。
良いアプローチですか?はいの場合はどうすれば達成できますか?
常に最大の画面を埋めるために必要な数のアイテムを取得するためのオプションですか? xxxhpdiが画面を埋めるために50の項目を必要とするように、常に50のバッチでフェッチしますか?画面が小さくなるとデータの取得頻度が低くなり、画面が大きくなるほどビューを満たすのに十分なアイテムが必要になります。 –
いいえ、不可能です。エンドポイントは常に一度に10アイテムを返します。 –
@TimCastelijnsしかし、どういうわけかxxxhdpiへの5回のリクエストを順番に行い、一度にデータをロードするとどうなりますか? –