【发布时间】:2017-03-08 19:02:12
【问题描述】:
我有以下代码为 RecyclerView 项目设置动画。这很好用,但是如果我向下滚动,它会为所有出现的项目设置动画。
我想要的是类似于 Google Play 音乐应用中的行为,其中动画仅针对最初可见的项目播放。由于没有动画适配器,因此应显示通过滚动可见的项目。知道如何归档此行为吗?
public class RecyclerViewAnimationAdapter : RecyclerView.Adapter
{
private int m_LastPosition = -1;
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
base.OnBindViewHolder(holder, position);
animateItem(position, holder.ItemView);
}
public override void OnViewDetachedFromWindow(Object holder)
{
base.OnViewDetachedFromWindow(holder);
var viewToAnimate = ((RecyclerView.ViewHolder) holder).ItemView;
viewToAnimate.ClearAnimation();
}
private void animateItem(int position, View viewToAnimate)
{
if (position > m_LastPosition)
{
var animation = AnimationUtils.LoadAnimation(Application.Context, Resource.Animation.slide_in_bottom);
viewToAnimate.StartAnimation(animation);
m_LastPosition = position;
}
}
}
【问题讨论】:
标签: android xamarin android-recyclerview