我有一些基本的项目装饰,在ItemDecoration.onDrawOver方法中绘制一些东西.
这RecyclerView也是DefaultItemAnimator它的基础.动画正在运作,一切都很棒.除了一件事.
当所有现有项目与此适配器中设置的新项目交换时,动画正在运行时将显示装饰.
我需要一种隐藏它们的方法.当动画结束时,需要显示它们,但是当它运行时,它们必须被隐藏.
我尝试了以下方法:
public void onDrawOver(..., RecyclerView.State state) {
if(state.willRunPredictiveAnimations() || state.willRunSimpleAnimations()) {
return;
}
// else do drawing stuff here
}
Run Code Online (Sandbox Code Playgroud)
但这没有帮助.装饰仅在短时间的动画中被删除,但在它仍在运行时再次出现.
另外,setup还包括RecyclerView.AdapterhasStableIds()(如果该位很重要).