RecyclerView滑入式动画,无需剪切最后一项

时间:2016-02-04 02:24:56

标签: android android-animation

我有一个RecyclerView,其中每个项目都是以壁画DraweeView实现的缩略图。根据屏幕的大小,当首次加载RecyclerView时,最后的缩略图有时会被“剪裁”(这没关系)。

我实施了动画,以便在初始加载时从左到右在RecyclerView中滑动。我的动画使用OvershootInterpolator,这就是问题所在:当发生过冲时,最后一个“剪裁”项目离开屏幕边缘,露出缩略图比之前的缩略图更窄(注意,RecyclerView的正常滚动没有这个问题)。

这是我的slide_in_animation.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="700"
        android:fromXDelta="100%"
        android:toXDelta="0%" />
</set>

以下是加载动画的代码的一部分:

final Animation slideIn = AnimationUtils.loadAnimation(context,
    R.anim.slide_in_animation);
// overshoot slightly further than the default tension of 2.0f
slideIn.setInterpolator(new OvershootInterpolator(2.5f));
myRecyclerView.startAnimation(slideIn);

使用OvershootInterpolator进行动画处理时,有没有办法让初始加载时屏幕上仅部分可见的最后一项完全可见?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是我提出的解决方案。希望其他人可以从中受益:

1)使用包含RecyclerView的容器的LayoutParams将容器宽度设置为当前宽度的1.5倍。
2)做滑入式动画
3)使容器宽度与步骤1之前的宽度相同(减小当前宽度1.5倍)。