android notifyItemRangeInserted 禁用自动滚动

标签 android android-adapter android-recyclerview

我使用 RecyclerView 作为我的数据列表的基础。 我已经实现了基于 ArraList 的自定义 RecyclerView.Adapter。在从互联网上获取数据时,我正在运行的代码是:

public void addItems(List<Item> items){

    final int size = data.size();
    data.addAll(items);
    notifyItemRangeInserted(size, items.size());
}

问题是在运行此代码后,我会自动滚动到列表底部(最后一个元素现在可见)

有没有办法禁用它?找不到任何类似的问题。

相关信息:我的适配器有 2 个 viewHolders - 对于位置 0,它有一个 View (viewType 0) 对于列表的其余部分,它具有 viewType 1 的 View

感谢您的帮助!

罗伊

最佳答案

问题出在你的位置开始。应该是:

public void addItems(List<QuestItem> items){    
    final int positionStart = data.size() + 1;
    data.addAll(items);
    notifyItemRangeInserted(positionStart, items.size());
}

关于android notifyItemRangeInserted 禁用自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27079899/

相关文章:

android - CoordinatorLayout的 'keyline' LayoutParams怎么用?

java - 使用 room 从两个表中获取一个对象中的两个列表

android - 选中删除 RecyclerView 行的复选框会删除其他行

android - 使用 FragmentStatePagerAdapter 从 ViewPager 中动态删除一个项目

android - 滚动时如何扩展 RecyclerView Item 之间的空间

android - 回收器 View 不显示来自 firebase 的任何数据

android - 如何为 Android 的画中画模式创建自定义屏幕尺寸?

java - 安卓 : Least recently used (LRU) algorithm implementation in java?

android recycler View 适配器、viewpagers、数据库、位图和内存不足错误

Android - 如何向 ListView 添加虚拟项目