也许有更好的方法,但是我偶然发现了这一点。您可以使用RecyclerView并在onBindViewHolder方法中设置动画来实现延迟滑入效果。
下面的代码改编自“如何在RecyclerView项目出现时设置动画”。我对其进行了调整,以根据位置错开动画。您还需要逻辑以在调用最初可见的视图的所有位置之后停止调用setAnimation方法,除非您希望它们在用户滚动时从左侧滑入。
@Override
public void onBindViewHolder(ViewHolder holder, int position)
{
holder.text.setText(items.get(position));
// Here you apply the animation when the view is bound
setAnimation(holder.container, position);
}
/**
* Here is the key method to apply the animation
*/
private void setAnimation(View viewToAnimate, int position)
{
Context context = MyApp.getActivity();
Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);
animation.setDuration(position * 50 + 200);
viewToAnimate.startAnimation(animation);
}
动画太多的视图可能会变得非常不稳定。间隔延迟的增加会使更多的动画离开屏幕,而较早的动画正在播放。您可以尝试查找一些动画(除了默认的android动画之外),以使它们更多地不在屏幕上(例如,暂停,移动或加速),这样您就可以更好地控制一次在屏幕上制作动画的视图数量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句