RecyclerView滚动到特定位置时初始动画不起作用



我创建了一个已启动动画的RecyclerView。因此,当recyclerView被填充时;跌倒";从屏幕顶部

RecyclerView

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layoutAnimation="@anim/layout_animation"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

布局动画

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/item_animation_fall_down"
android:animationOrder="normal"
android:delay="15%" />

动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="600">
<translate
android:fromYDelta="-50%"
android:toYDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
/>
<alpha
android:fromAlpha="0"
android:toAlpha="1"
android:interpolator="@android:anim/decelerate_interpolator"
/>
<scale
android:fromXScale="105%"
android:fromYScale="105%"
android:toXScale="100%"
android:toYScale="100%"
android:pivotX="50%"
android:pivotY="50%"
android:interpolator="@android:anim/decelerate_interpolator"
/>
</set>

如果屏幕打开时选择了第一个元素,它的工作原理很好。但有时我需要把注意力集中在回收器视图的不同位置的特定项目上。

我用这个代码做到这一点:

recyclerView.scrollToPosition(args.selectedIndex)

有没有办法强迫动画发生在那个场景中!?

layoutManager.setReverseLayout(true);//滚动至底部

myRecyclerview. scrollToPosition(position); 

如果在某些情况下不起作用(键盘打开等(,请尝试使用延迟

由于您正在将动画应用于视图(列表(,我想最好的方法是保持列表不可见,然后使列表从所需位置开始(删除初始对象或滚动(,然后在执行动画时记住view.startAnimation(animation)以在动画中添加android:fillAfter="true",因此在动画后它保持在Alpha = "1"

最新更新