RecyclerView仅在滚动时更新

我有一个带有适配器的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() );

它的工作


尝试指定插入或删除项目的位置而不是notifyDataSetChanged(); 。 您可以使用

notifyItemInserted(int pos);
notifyItemRangeChanged(int start, int end);`
链接地址: http://www.djcxy.com/p/34955.html

上一篇: RecyclerView updates only on scroll

下一篇: Cocoapods page redirecting to github