RecyclerView-上下滚动一个屏幕(不基于适配器位置)

tm1701

拥有一个RecyclerView,其中包含(高度)不同高度的物品,如何向下(或向上)滚动1个屏幕?因此,向下滚动1个屏幕后,显示的数据恰好位于当前屏幕上的数据下方。

举一个极端的例子:当我有一个非常大的第一数据项并且y滚动位置为0时,向下滚动1屏幕将意味着在该情况下显示第一项数据的下一部分/剩余部分。

有很多方法可能会有所帮助。

  • 使用适配器位置。当(适配器中的)项目很大时,这将不起作用。
  • 使用百分比。例如,对ScrollOffset,ScrollExtent和ScrollRange使用以下方法。好的,如何使用该百分比?百分比是否基于数据项的平均大小/高度?请参阅下面的列表。
  • 使用scrollTo(0,y)。如何找到下一个“ y”?

ScrollOffset,Extent和Range的方法是:

int offset = recyclerView.computeVerticalScrollOffset();
int extent = recyclerView.computeVerticalScrollExtent();
int range = recyclerView.computeVerticalScrollRange();
float percentage = (100.0f * offset / (float)(range - extent));

那么,有没有一种方法可以向下滚动1个屏幕,而与数据(行)项的大小无关?

黄昏

按视图的高度滚动就可以了,不是吗?在滚动视图内的recyclerview上进行了快速测试。

view.post(() -> view.scrollBy(0, view.getHeight()));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用多个RecyclerView一个适配器类

从另一个适配器刷新recyclerview适配器的值

如何在 Android 中将 RecyclerView 用于另一个 RecyclerView 的适配器?

RecyclerView() 适配器

RecyclerView不设置适配器

Recyclerview 适配器不刷新

两个ArrayList一个RecyclerView适配器

如何制作一个RecyclerView适配器以在每行中获取3个arraylist项

RecyclerView 未填充,可能是一个愚蠢的适配器问题

从另一个片段的适配器刷新RecyclerView片段

从另一个片段重置RecyclerView适配器

Recyclerview适配器的notifyDataSetChanged不更新RecyclerView

我面临 RecyclerView 没有连接适配器的问题,即使在将适配器设置为布局管理器之后也是如此。我一个

从适配器更新recyclerview

我可以有两个 recyclerView 一个 viewHolder 和两个适配器吗?

在RecyclerView的适配器中获取上下文

在recyclerview中用两个阵列列表填充一个自定义适配器

RecyclerView适配器在滚动期间取错误的值

从适配器更改滚动值时的Recyclerview

使用基于Realm的适配器拖放RecyclerView

滚动时,RecyclerView如何从适配器获得1个额外的视图

如何使用泛型将一个RecyclerView适配器用于不同类型的对象?

Firebase-在数组具有任何元素之前调用适配器,并返回一个空的RecyclerView

是否可以创建一个动态的RecyclerView适配器来接受任何对象列表<Object>的列表?

如何从位置适配器RecyclerView获得价值

Android RecyclerView适配器位置为-1

Recyclerview 从其适配器访问位置时滞后

RecyclerView 为适配器位置返回 null

RecyclerView 交换两个适配器