繁体   English   中英

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

[英]How to scroll last item on RecyclerView to the top position?

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

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

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

更新:虚拟数据以外的最佳替代解决方案是向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"/>

好的,我能够让这个工作。 首先,我在onBindViewHolder中测量适配器中项目的大小

holder.llWrapper.measure(0,0);

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM