android - RecyclerView notifyItemRangeRemoved 没有动画
问题描述
我将 recyclerView 与 notifyItemRangeInserted 和 notifyItemRangeRemoved 一起使用。
我使用的屏幕中的 RecyclerViewwidth="match_parent" and height="wrap_content"
我需要在我的 recylerView中显示或隐藏所有元素。我使用了这段代码,效果很好。visibility
更改标志后元素隐藏和显示。
但由于某种原因,存在插入动画,而删除动画则没有. 为什么?
class MyAdapter : RecyclerView.Adapter<ViewHolder>() {
var objects: List<MyData> = emptyList()
set(value) {
field = value
notifyDataSetChanged()
}
var visibility: Boolean = true
set(value) {
field = value
when (field) {
true -> notifyItemRangeInserted(0, cards.size)
false -> notifyItemRangeRemoved(0, cards.size)
}
}
override fun getItemCount(): Int = if (visibility) objects.size else 0
解决方案
上网查了一下,发现RecyclerView在height = wrap_content的时候动画有问题。
在某些版本的回收库谷歌中,这是固定的,但从人们的回答中我发现问题与 androidx 库有关
推荐阅读
- javascript - url-shortening 是否可以防止 XSS 攻击?
- angular - Angular 8 在页眉和页脚之间路由组件未在控制台上显示且没有错误
- javascript - (弹簧靴)
- sql - 有没有办法用 ilike 和索引查询 postgres JSON/JSONB 列?
- pandas - 当字符串在数据框列中时的一种热编码
- sql - SQL:是否有从另一个特定行索引值的功能,按部分分区?
- python - 当列表中有 15 个数字时如何解决这个问题,我们在插槽 5 中找到给定的数字然后打印该插槽?
- java - Java中如何访问栈内存
- postgresql - 如何在 Postgres 中获取表中的最新条目
- html - 在最新的 chrome 中显示信用卡自动填充建议的名称输入字段