android - 取消 RecyclerView 垂直投掷/滑动
问题描述
我目前正在检测特定视图何时对用户可见或消失并RecyclerView
在该视图位置停止滚动。到目前为止,我已经能够在OnScrollListener
with RecyclerView.stopScroll
and的帮助下实现这一点RecyclerView.scrollTo
,但现在唯一的问题是,如果用户翻动列表,它将超过该视图位置,因为翻动在滚动到之后仍然“起作用”位置已被调用,导致列表超出项目位置。
如何以编程方式结束用户投掷动作?类似的东西recyclerView.fling(0)
存在吗?
解决方案
我最终使用LinearLayoutManager.scrollToPositionWithOffset
目标的位置和 0 作为调用后的偏移量RecyclerView.stopScroll
。
到目前为止,当同时使用这两者时,投掷行为不再导致列表滚动超出预期位置。
推荐阅读
- android - 阿拉姆没有按计划时间工作
- request - 异构集群中的 Kubernetes cpu 请求/限制
- php - 如何向php服务器发送特殊字符
- php - 无法在 guzzle 多格式请求上发布文件内容
- python - 在 os.environ 上使用 unittest.mock.patch.dict 会导致 TypeError
- python - 用于字典转换的特殊方法名称的内置函数
- sql-server - SQL Server Profiler - 奇怪的持续时间,StartTime 大于 EndTime
- c# - 在 dotnet core 2.0 和 angular 2+ 中访问当前用户的下载文件夹
- javascript - 是否可以使用 vanilla js 在窗口范围内使用 clientX 和 clientY 触发单击按钮
- c# - FluentAssertions Should().BeEquivalentTo() 失败,列表包含从相同接口派生的运行时指定类型