【问题标题】:Animate RecyclerView additions from bottom从底部动画 RecyclerView 添加
【发布时间】:2015-04-29 19:00:18
【问题描述】:

我正在使用最新的 RecyclerView 库来显示一个列表,其中包含将项目添加到此列表的选项。该列表以相反的顺序排列,因此最新添加的内容显示在底部。从顶部向回收站视图添加新项目时,会显示一个漂亮的动画,并且列表会自动滚动以显示最新项目。

但是,当从底部添加新项目时,项目不会像新项目一样被向上推。这会导致奇怪的行为,即添加了新项目并且除非用户滚动到列表底部,否则无法看到动画。

作为临时修复,我已强制回收器视图适配器在添加新项目后滚动到第一个位置。这不像从回收站视图顶部添加那样无缝,有没有合适的方法来实现这一点?

对应的代码如下:

la.addItem(0, msg);
layoutManager.scrollToPosition(0);

【问题讨论】:

  • 我不确定是什么问题。当您滚动到列表的最底部时,整个提升将向上移动,如果您将新项目添加到底部,它将消失在适当的位置。如果您在中间某处添加一个项目,则其下方的底部项目不会移动,但顶部的项目会移动。n 你是说这不会发生吗?
  • 当回收站视图显示反向布局时,底部会出现添加新项目。问题是当新项目被动画到列表中时,其他列表项没有被向上推。这会造成新添加的项目在屏幕外显示动画的情况。
  • @TimMiller 你有没有解决你的问题...我有同样的问题。从底部添加项目时没有动画
  • 不。最终放弃了该视图样式并选择了另一种没有底部动画的布局。这真是太糟糕了!

标签: android animation adapter android-recyclerview


【解决方案1】:

将此函数添加到您的适配器类

    public void addItem(Object aObject)
    {
        mAdapterList.add(aFormElement);
        notifyItemInserted(mAdapterList.size()); // Passing position where insertion happen
    }

如果您没有获得动画,则只能使用以下功能。 调用 addItem() 后,尝试调用滚动到 recyclerview 上所需位置的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    相关资源
    最近更新 更多