У меня есть базовое украшение элемента, которое рисует какой-то материал в методе ItemDecoration.onDrawOver
.
Этот RecyclerView
также имеет на нем DefaultItemAnimator
.
Анимации работают, все отлично. Кроме одного.
Когда все существующие элементы заменяются новым элементом, установленным в этом адаптере, декорации отображаются во время анимации.
Мне нужен способ скрыть их. Когда анимация заканчивается, они должны быть показаны, но пока они работают, они должны быть скрыты.
Я попробовал следующее:
public void onDrawOver(..., RecyclerView.State state) {
if(state.willRunPredictiveAnimations() || state.willRunSimpleAnimations()) {
return;
}
// else do drawing stuff here
}
но это не помогает. Украшение удаляется только в течение короткого периода анимации, но затем появляется снова, пока оно все еще работает.
Также настройка включает RecyclerView.Adapter
, которая hasStableIds() (в случае, если бит имеет значение).