允许Recyclerview项目滚动到Recyclerview的顶部

时间:2018-02-28 16:05:09

标签: android android-recyclerview

我有一个RecyclerView列表,我希望当前选中的项目显示在RecyclerView顶部。但是,我仍然希望整个列表可以滚动,因此,从所选项目上方删除视图不是一种可能的解决方案。

似乎我需要一种机制,RecyclerView项能够滚动超出RecyclerView的范围。我不确定这是否可行,如果不是,那么是否有人有解决方案确保当前所选项目滚动到RecyclerView的顶部。

我已经尝试了smoothScrollToPosition(),但这不适用于RecyclerView的底部,并希望其中一个中间项滚动到顶部。

非常感谢

要说明,我有4个项目的列表,由于列表中没有足够的项目,recyclerview无法滚动。

enter image description here

然后我选择一个项目

enter image description here

然后我希望所选项目滚动到顶部,但是对于上面的项目仍然可以滚动。

enter image description here

所以,当我向上滚动时......

enter image description here

2 个答案:

答案 0 :(得分:4)

RecyclerView设置底部填充,等于项目高度的三倍,然后设置android:clipToPadding="false"。这将使您的底部项目滚动到顶部并在底部项目上显示填充,但仅在底部项目上显示。

这是an answer类似的问题,可以很好地解决这个问题。

答案 1 :(得分:0)

假设您的回收者视图中有点击侦听器的项目,当用户点击您获得项目位置和视图的任何项目时,下面的代码对我有效

android.support.v7.widget.LinearLayoutManager

确保您的布局管理器来自此类支持库

adb shell am start -n "com.xxx.xxx/com.zzz.zzz.ui.test.TestActivity" --es "activity" "com.zzz.zzz.ui.opinion.NotificationScheduledActivity" --es "params" "\[\{name='date',type='date',value='2018-05-12'\},\{name='can_return',type='boolean',value=false\}\]"

否则你将找不到findFirstVisibleItemPosition()方法等