首页 > 解决方案 > 删除所有项目时刷新 RecyclerView

问题描述

我有一个RecyclerView显示项目列表的。

如果没有要显示的项目,recyclerview 会显示一个具有特定视图的项目(告诉用户没有项目而不是白屏)。

HistoryFragment内:

private void initRecyclerView(Boolean isNoResult){
        HistoryRecyclerViewAdapter adapter = new HistoryRecyclerViewAdapter(mContext, mRecords, **isNoResult**);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
        mRecyclerView.setAdapter(adapter);
}

在 HistoryRecyclerViewAdapter 中:

@NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view;

        if(**isEmpty**) {
            **view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_listitem_prhistory_empty, parent, false);**
        } else {
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_listitem_prhistory, parent, false);
        }

        ViewHolder holder = new ViewHolder(view);
        return holder;
}

所以,如果我们点击它们,就可以一个一个地删除它们。

我想在 dataSet 为空时isEmpty设置true并刷新。RecyclerView

我已经知道在哪里调用该方法,但我真的不知道该怎么做?(即刷新RecyclerViewisEmpty = true这样我就可以显示向用户解释不再有记录的单元格)。

标签: javaandroidandroid-recyclerview

解决方案


最佳做法是在 RecyclerView 之外使用一个空视图,但如果你喜欢做你想做的事:

1.在 onCreateViewHolder 中只膨胀一个具有空视图和项目视图的布局

  1. on item delete 检查您的数组是否为空,然后添加一个 null 项目,然后在 onBindViewHolder 检查模型是否为 Null 可见的空视图,否则显示项目视图

概括:

绑定:

模型为空:空视图可见

模型不为空:项目视图可见


推荐阅读