前提・実現したいこと
現在、APIを利用しデータを取得する実装を行っています。
取得したデータはRecyclerViewによりリスト表示し、スクロール行が最後にいたった場合、次のデータをロードし表示するといった処理を行っています。Android開発を初めてまもなくで、開発にあまり知見もなく、Googleでの情報検索でなんとか開発している状態です。助けていただけると幸いです。
発生している問題・エラーメッセージ
問題となっているのは。次に表示するデータをRecyclerViewのAdapterに通知する処理として、notifyItemRangeInsertedを使い行っているのですが、追加データがRecyclerViewのAdapterにうまく通知されないのか、スクロールが止まってしまう現象に苦慮しています。特にエラーなども発生している様子もありません。
以下のソースコードのやり方で表示している、他のリストはうまく次のデータ表示ができているため、正直Adapterの作りの問題なのかなど、調査の観点がよくわからず苦慮しております。
notifyItemRangeInsertedがうまく動作しない原因に関して、なにかあればご指南いただけると幸いです。
該当のソースコード
java
1 //APIより取得したデータを List<Map<String, String>> mSearchSpotDataに格納する処理 2 mSearchSpotData = setApiDataList(mSpotKeywordSearch, mSearchSpotData); 3 4 if (API_LOAD_OFFSET == 0) { 5 6 // Recycler Adapterに検索結果の取得情報を初期設定する。 7 mVerticalRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 8 mSpotSearchVerticalAdapter = new DecoPhotoNewpostSpotSearchAdapter(getContext(), mSearchSpotData); 9 mVerticalRecyclerView.swapAdapter(mSpotSearchVerticalAdapter,false); 10 11 }else { 12 13 // RecyclerAdapterに追加検索結果の取得情報を更新する。 14 mSpotSearchVerticalAdapter.notifyItemRangeInserted(mPositionStart, mApiItems); 15 }
補足説明
・データは40件ごとにAPIにより取得し、setApiDataListにてmSearchSpotDataにaddしています。
・notifyItemRangeInsertedのパタメータは
mPositionStart = 40
mApiItems = 40
うまくいってる他のリストと挙動を比較しても、notifyItemRangeInsertedのパラメータとアダプターに設定する
mSearchSpotDataの内容に問題はないように思えます。
何卒、よろしくお願いいたします。
あなたの回答
tips
プレビュー