【发布时间】:2018-02-28 16:05:09
【问题描述】:
我有一个RecyclerView 列表,我希望当前选中的项目显示在RecyclerView 的顶部。然而,我仍然希望整个列表是可滚动的,因此,从所选项目上方删除视图是不可能的解决方案。
看来我需要一种机制,使RecyclerView 项目能够滚动到RecyclerView 的边界之外。我不确定这是否可行,如果不是,是否有人有解决方案来确保当前选定的项目滚动到RecyclerView 的顶部。
我尝试过smoothScrollToPosition(),但如果位于RecyclerView 的底部并希望中间项目之一滚动到顶部,则此方法不起作用。
非常感谢
为了说明,我有一个包含 4 个项目的列表,recyclerview 无法滚动,因为列表中没有足够的项目。
然后我选择一个项目
然后我希望所选项目滚动到顶部,但上面的项目仍然可以滚动。
所以,当我向上滚动时...
【问题讨论】:
-
一切皆有可能我的前任...只需从列表中删除所选项目并将其添加到列表的第一个位置,然后
notifyItemRangeInserted(0, selected_position);recyclerView 将自动滚动到顶部... :) -
感谢您的评论,但我仍然希望所选项目上方的项目可以滚动到,我认为这不能解决这个问题。
-
您想要自动滚动或者您想要用户滚动并且您想要将所选内容保持在其原始位置还是想要它在顶部?
-
得到了我的朋友 :) 正在处理它
-
您可以从列表和
notifyDataSetChanged()中删除所有项目直到选定位置,当用户尝试向上滚动时添加这些元素并再次notifyDataSetChanged()
标签: android android-recyclerview