- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个项目列表。这些项目按日期排序。日期早于现在的项目(“旧”项目)在用户打开应用程序时不应该可见,但用户应该能够通过将列表滚动到顶部来查看它们。
我找到第一个带有 future 日期的项目("new"项目)的 position
并调用 recyclerView.scrollToPosition(position)
。
我还尝试了 layoutManager.scrollToPositionWithOffset(position, 0)
。
如果列表中有很多"new"项目,这会起作用。
但是如果项目太少(例如,一个“旧”和一个"new"),那么这些方法就不起作用了。
无论列表中有多少项目,如何以编程方式将列表滚动到给定位置的项目以将此项目置于顶部?
最佳答案
最初,为 RecyclerView
提供一个仅包含 future 事件的数据集。
在 recyclerView
上设置一个 onTouchListner
来检测向上滚动。如果 findFirstCompletelyVisibleItemPosition()
在检测到向上滚动时返回第一个索引,则表示向上过度滚动。然后,更改数据集以包含旧条目。然后,使用 adapter.notifyDataSetChanged() 通知适配器数据集更改并重新绘制列表。
注意:
当您在 RecyclerView
上设置 onTouchListner
时,确保您不要吸收触摸事件[onTouchEvent() 应该返回 false]
。
有一次,您第一次检测到向上过度滚动,你可以设置一个标志来表明你不需要改变 future 触摸事件的数据集。
关于android - 如何使用 RecyclerView 和 LinearLayoutManager 在顶部显示项目而不考虑项目数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253193/
driver.get("https://www.yahoo.com/"); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS)
原始 DataFrame 只有 1 列元组。我想添加一列,其中包含每个元组中的项目数(长度)。 ITEMS 0 (EGG, WATER, TOMATOE) 1 (MILK
我有一个包含这些部分的 ListView。当有一个部分时,它就会取代另一个部分。也就是说,如果 ListView 项目计数为 30,则该部分将取代第一段,结果显示只有 29 点。 这里有一张图,很清楚
这个问题在这里已经有了答案: parsing nested parentheses in python, grab content by level (4 个答案) 关闭 4 年前。 我想提取与 a
我决定使用 Gwan 的 KV 存储来代替 Redis NoSQL 数据库。我在手册中看到,kv 支持文件 IO 的持久标志,以在重新启动之间保留我猜的数据。它使用回调recfn,但是这个函数究竟如何
我现在正在学习 swift。我在我的 swift 代码中使用了 ANetworking (Obj C 中的库)。我已经成功返回解析后的 JSON。但是我想找到返回的 json 项目的数量。这是我到目前
我正在重复这样的 JSON 对象(嵌套)项目列表: {{specific}} 我想在页面顶部的每个项目对象中显示“特定”项目的数量(在 ng-repeat 范围之外)。我无
我目前有 8 个 UITabBar 项目,所有这些项目都可以在“更多” View 中进行编辑。我的问题是,允许的标签栏项目的绝对最大数量是多少? 我理解5是一次最多可见的;我正在寻找您能拥有的最长月经
如果我在 DynamoDB 中扫描或查询,则可以设置 Limit属性(property)。 DynamoDB documentation说如下: The maximum number of items
我想知道的是我们如何在 Angular js 中获取项目的 ng-repeat 计数。从下面的代码中,我想获得技能的数量,因为我想对其进行限制。如果 skill count > 5 将 skill 限
我在日志中收到此异常 - java.lang.IndexOutOfBoundsException: Invalid item position 0(0). Item count:0
我是一名优秀的程序员,十分优秀!