首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当滚动到特定位置时,RecyclerView初始动画不工作

当滚动到特定位置时,RecyclerView初始动画不工作
EN

Stack Overflow用户
提问于 2021-03-17 22:36:45
回答 2查看 202关注 0票数 1

我创建了一个RecyclerView,上面有一个已启动的动画。因此,当填充recyclerView时,第一个元素从屏幕顶部“落下”

RecyclerView

代码语言:javascript
运行
复制
 <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layoutAnimation="@anim/layout_animation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

布局动画

代码语言:javascript
运行
复制
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
    android:animation="@anim/item_animation_fall_down"
    android:animationOrder="normal"
    android:delay="15%" />

动画

代码语言:javascript
运行
复制
<?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中不同位置的特定项目。

我用下面的代码做到这一点:

代码语言:javascript
运行
复制
recyclerView.scrollToPosition(args.selectedIndex)

有没有办法强制动画在这种情况下发生!?

EN

回答 2

Stack Overflow用户

发布于 2021-03-24 12:22:35

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

代码语言:javascript
运行
复制
myRecyclerview. scrollToPosition(position); 

如果在某些情况下(键盘打开等)无效,请尝试使用延迟

票数 0
EN

Stack Overflow用户

发布于 2021-03-26 22:23:13

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66675253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档