gpt4 book ai didi

android - RecyclerView : Animate item resize

转载 作者:IT王子 更新时间:2023-10-28 23:32:06 25 4
gpt4 key购买 nike

我有一个 RecyclerView。回收站 View 的每个项目都可以展开或不展开。一次只能展开一项。

本质上,我正在尝试在 Lollipop 拨号器中重新创建历史列表。

我发现 using a LayoutTransition on RecyclerView makes it crash .

但我无法正确地为两种状态之间的项目 View 更改设置动画。

我已经尝试将 getItemAnimator().setSupportsChangeAnimations(true)notifyItemChanged(getPosition()) 结合使用,但有两个问题:

  • View 被重新创建,使过渡变得非常奇怪,因为它在项目移动的同时淡入下一个项目上方。出现的新 View 没有调整大小,它已经是全尺寸了。
  • 在重新创建 View 时,旧 View 淡出而新 View 淡入,这使得 View 背景颜色闪烁。

我还尝试在动画期间在项目 View 上设置 LayoutTransition,但这种方法的问题是 RecycleView 的布局会立即更新并且不跟随动画。

我为这两次尝试都创建了一个小型演示项目。 The projects sources are here .

如何在项目布局更改时创建平滑过渡?

最佳答案

好的,所以我找到了一个不涉及调用 notifyItemChanged 的解决方案,因此不会替换 View 。缺点是您必须手动检查 View 一致性。为此,我创建了一个小型库,它可以完全满足我的需求,在 ViewHolder 中有 5 个位置。

诀窍是手动设置高度变化而不是使用 LayoutTransition。

The demo project can be found here .

关于android - RecyclerView : Animate item resize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446051/

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