Я создаю Q & A, где каждый вопрос является карточкой. Ответ начинается с первой строки, но когда его щелкнуть, он должен быть расширен, чтобы отобразить полный ответ.
Когда ответ расширяется/сворачивается, остальная часть RecyclerView должна анимировать, чтобы освободить место для расширения или свернуть, чтобы не показывать пробел.
Я смотрел рассказ о анимациях RecyclerView и считаю, что мне нужен пользовательский ItemAnimator, где я переопределяю animateChange. В этот момент я должен создать ObjectAnimator для анимации высоты View LayoutParams. К сожалению, мне сложно связать все это вместе. Я также возвращаю true, когда переопределяет canReuseUpdatedViewHolder, поэтому мы повторно используем одного и того же пользователя.
@Override
public boolean canReuseUpdatedViewHolder(RecyclerView.ViewHolder viewHolder) {
return true;
}
@Override
public boolean animateChange(@NonNull RecyclerView.ViewHolder oldHolder,
@NonNull final RecyclerView.ViewHolder newHolder,
@NonNull ItemHolderInfo preInfo,
@NonNull ItemHolderInfo postInfo) {
Log.d("test", "Run custom animation.");
final ColorsAdapter.ColorViewHolder holder = (ColorsAdapter.ColorViewHolder) newHolder;
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) holder.tvColor.getLayoutParams();
ObjectAnimator halfSize = ObjectAnimator.ofInt(holder.tvColor.getLayoutParams(), "height", params.height, 0);
halfSize.start();
return super.animateChange(oldHolder, newHolder, preInfo, postInfo);
}
Сейчас я просто пытаюсь что-то оживить, но ничего не происходит... Любые идеи?