У меня есть RecyclerView
, и я хочу анимировать один View
внутри RecyclerView
элемента только для элементов, которые удовлетворяют определенному условию.
Я использую ObjectAnimator
для этого. Иногда это работает нормально, но иногда анимация применяется ко всем представлениям. Я предполагаю, что с Views
есть какая-то проблема с переработкой, но я не уверен, что может вызвать это.
Пример:
val halfHeightCropped = halfHeight - (stopIndicatorHeight/2) //half item height minus half timeline circle height
val halfDistCurrToNext = timeDistCurrToNext/2
if (alreadyTraveled > halfDistCurrToNext){
animator = ObjectAnimator.ofFloat(indicator, "translationY", halfHeightCropped.toFloat()).apply {
duration = 0
start()
}
}
Я анимирующий круг, который движется вертикально через график времени, основанный на реальном времени. Этот круг является частью каждого элемента RecyclerView
, а в некоторых элементах этот элемент находится по центру в элементе View
, а некоторые (по 1 в то время) анимируют этот круг по вертикали.
Приведенный выше пример является частью функции, которая вызывается из onBindViewHolder
, если элемент соответствует условию, в противном случае представление сбрасывается в положение по умолчанию. (вертикаль параметра центра в элементе).