gpt4 book ai didi

android - 如何以编程方式滚动 recyclerView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:15 30 4
gpt4 key购买 nike

我有一个水平的 recyclerView,当我第一次打开 Activity 时,我想让 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 作为一个整体滑动,我只想滚动(滑动)项目。我该怎么做?

最佳答案

您可以使用scrollToPosition()

recyclerView.post(new Runnable() {
@Override
public void run() {
recyclerView.scrollToPosition(adapter.getItemCount() - 1);
// Here adapter.getItemCount()== child count
}
});

smoothScrollToPosition()

recyclerView.post(new Runnable() {
@Override
public void run() {
recyclerView.smoothScrollToPosition(adapter.getItemCount()- 1);
}
});

要再次向上移动,您需要使用索引 0 调用上述方法。但首先,您需要确保 RecyclerView 滚动到最后。因此,在 RecyclerView 上放置一个 ScrollListener 以确保最后一项可见。

关于android - 如何以编程方式滚动 recyclerView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862643/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com