我有一个带有适配器的 RecyclerView
布局:
public class SimpleRecyclerAdapter extends RecyclerView.Adapter<SimpleViewHolder> {
protected List<JSONObject> data = new ArrayList<>();
public List<JSONObject> getData() { return data; }
}
我更新了它的适配器,如下:
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();
}
问题在于,只有当我触摸或滚动视图时才能看到新项目。我错过了什么?
更新:
为了解决问题,我替换了这些行。
adapter.notifyDataSetChanged();
recyclerView.invalidate();
随着
adapter.notifyItemRangeInserted( loadingMore ? 1 : 0, msgs.length() );
它起作用了