如何将RecyclerView上的最后一项滚动到顶部位置?

时间:2017-06-16 18:03:00

标签: android android-recyclerview recycler-adapter

我事先道歉,我没有任何代码示例,因为我完全处于黑暗中以解决我的问题。我想知道,如何将列表的最后一项滚动到回收站视图的顶部位置?

默认情况下,如果所有项目都在显示,并且不需要滚动,则您无法再滚动查看更多项目。与此冲突的是,我正在根据最顶层的项目更新单独视图的信息。

对此有何想法?我唯一能想到的是添加任意的假空数据,以便我可以继续滚动。提前致谢

更新:除虚拟数据之外的最佳替代解决方案是向RecyclerView添加填充。如果我添加paddingBottom,则在滚动到最后一项之前,您看不到空白区域。但填充必须精确,以迫使最后一个项目到顶部位置。所以,即使这是有缺陷的。

<android.support.v7.widget.RecyclerView
    android:clipToPadding="false"
    android:paddingBottom="300dp"
    android:id="@+id/rv_data"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@null"
    android:scrollingCache="false"/>

1 个答案:

答案 0 :(得分:0)

好的,我能够让它发挥作用。首先,我在onBindViewHolder

中测量适配器中项目的大小
holder.llWrapper.measure(0,0);

我从那里得到了myMeasuredHeight()并将其从我的适配器传递回我的片段。然后我测量回收器视图高度。我减去了Recyclerview和项目的高度,剩余部分是我需要设置底部到recyclerview的填充量

rv.setPadding(0,0,0,padding);

这是我能想到的最好的。干杯!