java - 删除所有项目时刷新 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
我已经知道在哪里调用该方法,但我真的不知道该怎么做?(即刷新RecyclerView
,isEmpty = true
这样我就可以显示向用户解释不再有记录的单元格)。
解决方案
最佳做法是在 RecyclerView 之外使用一个空视图,但如果你喜欢做你想做的事:
1.在 onCreateViewHolder 中只膨胀一个具有空视图和项目视图的布局
- on item delete 检查您的数组是否为空,然后添加一个 null 项目,然后在 onBindViewHolder 检查模型是否为 Null 可见的空视图,否则显示项目视图
概括:
绑定:
模型为空:空视图可见
模型不为空:项目视图可见
推荐阅读
- react-native - React Native:null 不是对象(评估“NativeMusicControl.STATE_PLAYING”)
- google-cloud-platform - Teradata 中的 dbc.columns 与 BigQuery 中的 INFORMATION_SCHEMA.COLUMNS
- c# - EF Core 异步复杂查询
- macos - MAMP:我应该把 html 文件放在哪里才能让它出现在网络上?
- javascript - 无法从 watchpack-chokidar2:fsevents 访问 NPM CI 错误绑定
- python - “ValueError:blocks[0,:] 的行尺寸不兼容。”拟合管道时
- c# - 带有 MS Bot 作曲家下拉菜单的自定义操作
- electron - 是否可以动态更改电子图标和可见应用程序名称?
- docker - 标签 :latest 不工作 Azure 管道 Docker kubernetes
- python - 如何禁用luigi的时间和日志类型信息