我有一个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进行动画处理时,有没有办法让初始加载时屏幕上仅部分可见的最后一项完全可见?
感谢您的帮助!
答案 0 :(得分:0)
这是我提出的解决方案。希望其他人可以从中受益:
1)使用包含RecyclerView的容器的LayoutParams将容器宽度设置为当前宽度的1.5倍。
2)做滑入式动画
3)使容器宽度与步骤1之前的宽度相同(减小当前宽度1.5倍)。