6
Tôi có một bố trí với một RecyclerView
với adapter:cập nhật RecyclerView chỉ trên cuộn
public class SimpleRecyclerAdapter extends RecyclerView.Adapter<SimpleViewHolder> {
protected List<JSONObject> data = new ArrayList<>();
public List<JSONObject> getData() { return data; }
}
tôi cập nhật đó là bộ chuyển đổi như:
public void udpdateFromJson(JSONObject payload) {
JSONArray msgs = payload.optJSONArray("messages");
for(int ix = 0; null != msgs && ix < msgs.length(); ix++){
JSONObject o = msgs.optJSONObject(ix);
if(loadingMore) adapter.getData().add(1 + ix, o);
else adapter.getData().add(o);
}
adapter.notifyDataSetChanged();
recyclerView.invalidate();
}
Vấn đề là, tôi có thể nhìn thấy sự mới chỉ khi tôi chạm hoặc cuộn chế độ xem.
Tôi đang thiếu gì?
UPDATE:
để khắc phục vấn đề tôi đã thay thế các dòng
adapter.notifyDataSetChanged();
recyclerView.invalidate();
với
adapter.notifyItemRangeInserted(loadingMore ? 1 : 0, msgs.length());
và nó làm việc