【问题标题】:RecyclerView onClick notifyItemRemoved doesn't trigger onBindViewRecyclerView onClick notifyItemRemoved 不会触发 onBindView
【发布时间】:2015-10-19 08:59:45
【问题描述】:

我使用notifyItemRemoved() 方法我想更改其他剩余项目,但该方法不会触发onBindView() 方法。

除了使用notifyDataSetChanged(),我该怎么做。我想要notifyItemRemoved()方法自带的动画

【问题讨论】:

    标签: android android-recyclerview


    【解决方案1】:

    如果您尝试从RecyclerView Adapter 中删除一个项目并希望在RecyclerView 中的整个列表中显示动画。

    使用notifyItemRemoved(position)后使用notifyItemRangeChanged(position, getItemCount());

    notifyItemRemoved(position); - 通知 RecyclerView 适配器适配器中的数据已在特定位置被删除。

    notifyItemRangeChanged(position, getItemCount()); - 通知 RecyclerView 适配器适配器中元素的位置已被 从位置更改(删除元素索引到列表末尾),请 更新它。

    请参阅此RecyclerView insert /remove animation 答案。

    【讨论】:

    • 遇到了类似的问题,但是这个fix 不应该做任何事情。查看 RecyclerVIew 代码: public final void notifyItemRemoved(int position) { mObservable.notifyItemRangeRemoved(position, 1); }
    • @VincentD。这个修复确实做了一些事情。请注意,此修复程序使用 notifyItemRangeChanged 而不是 notifyItemRangeRemoved
    • 你也可以写:notifyItemRangeChanged(position, getItemCount() - position);.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多