我创建了一个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中不同位置的特定项目。
我用下面的代码做到这一点:
recyclerView.scrollToPosition(args.selectedIndex)
有没有办法强制动画在这种情况下发生!?
发布于 2021-03-24 12:22:35
layoutManager.setReverseLayout(true);
//滚动到底部
myRecyclerview. scrollToPosition(position);
如果在某些情况下(键盘打开等)无效,请尝试使用延迟
发布于 2021-03-26 22:23:13
由于您要将动画应用于视图(列表),我想最好的方法可能是让列表不可见,然后使列表从所需位置开始(移除初始对象或滚动),然后在执行动画时view.startAnimation(animation)
要记住在动画中添加android:fillAfter="true"
,这样动画之后它仍保留在Alpha = "1"
中。
https://stackoverflow.com/questions/66675253
复制相似问题