我有一个RecyclerView
列表,我希望当前选中的项目显示在RecyclerView
的顶部。但是,我仍然希望整个列表可以滚动,因此,从所选项目上方删除视图不是一种可能的解决方案。
似乎我需要一种机制,RecyclerView
项能够滚动超出RecyclerView
的范围。我不确定这是否可行,如果不是,那么是否有人有解决方案确保当前所选项目滚动到RecyclerView
的顶部。
我已经尝试了smoothScrollToPosition()
,但这不适用于RecyclerView
的底部,并希望其中一个中间项滚动到顶部。
非常感谢
要说明,我有4个项目的列表,由于列表中没有足够的项目,recyclerview无法滚动。
然后我选择一个项目
然后我希望所选项目滚动到顶部,但是对于上面的项目仍然可以滚动。
所以,当我向上滚动时......
答案 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()方法等