我有一个水平的 recyclerView,当我第一次打开活动时,我想让 recyclerview 中的所有项目滚动到底部(在这种情况下向右)并回到顶部(向左)。有点像动画片。滚动行为应该对用户可见。
我试着这样做:
Animation slideRight = AnimationUtils.loadAnimation(this, R.anim.slide_right);
Animation slideLeft = AnimationUtils.loadAnimation(this, R.anim.slide_left);
slideRight.setDuration(1000);
slideLeft.setDuration(1000);
slideRight.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
recyclerView.startAnimation(slideLeft);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
recyclerView.startAnimation(slideRight);
向左滑动动画:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="200"
android:fromXDelta="-100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>
向右滑动动画:
<translate
android:duration="200"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
它可以工作,但是它只是将 recyclerview 作为一个整体滑动,我只想滚动(滑动)这些项目。我怎样才能做到这一点?
原文由 Ege Kuzubasioglu 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
scrollToPosition()
或
smoothScrollToPosition()
要再次向上移动,您需要使用索引 0 调用上述方法。但首先,您需要确保
RecyclerView
滚动到最后。因此,将ScrollListener
放在RecyclerView
上,以确保最后一项可见。