recyclerview:onBindViewHolder(VH holder,int position,List <object> payloads)无法正常工作

时间:2016-11-22 11:52:59

标签: android android-layout android-recyclerview

在我的应用程序中,我使用了recyclerview来刷新我的视图。但是当我使用方法时:notifyItemChanged(int position,Object payload),payload不为null,方法:onBindViewHolder(VH holder,int position,List payloads)不工作。请告诉我为什么?谢谢。

调用方法后网络请求成功:

for (int i=0; i<mDatas.size(); i++) {
                Device d = mDatas.get(i);
                if (modelId.equals(d.getModelId())) {
                    if (getHeaderView() != null) {
                        adapter.notifyItemRangeChanged(i + 1, 1,payload);
                    } else {
                        adapter.notifyItemRangeChanged(i, 1,payload);
                    }
                }
            }

我的适配器:

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, List<Object> payloads) {
    if (payloads.isEmpty()) {
        onBindViewHolder(holder, position);
    } else {
        int viewType = getItemViewType(position);
        if(viewType == TYPE_HEADER || viewType == TYPE_FOOTER) return;
        final int pos = getRealPosition(holder);
        final T data = mDatas.get(pos);
        onBind(holder, pos, data, payloads);
    }
}

1 个答案:

答案 0 :(得分:0)

我认为这个问题是由&#34; android:fitsSystemWindows =&#34; true&#34;&#34;引起的,但是我不知道为什么会告诉我原因。