如果项目的视图同时更新,则移动动画会滞后。为什么会出现这种情况?
fileViewModel.getAllfiles().observe(this, new Observer<List<File>>() {
@Override
public void onChanged(List<File> files) {
adapter.submitList(files);
}
});
进度像这样更新,更新数据库并触发观察者
fileViewModel.setDownloadProgress(file.getFileId(), percentage);
下载的下只有一两项也不卡
每当发生更改时,您似乎都会替换整个文件列表。 不推荐这种做法,因为它会增加时间复杂度。
您应该只通知 RecyclerView 适配器发生的实际更改。在您的情况下,您只更改一项。
参考官方文档和最佳实践:https://developer.android.com/topic/performance/vitals/render#recyclerview_notifydatasetchanged