我有一个片段,其中有 RecyclerView
和 LinearLayoutManager
其中有 CardView
项目。单击项目应滚动到顶部有一个浮动操作按钮。 I have tried using scrollToPosition
as well as scrollToPositionWithOffset
with RecyclerView
and also with LinearLayoutManager
as shown below.但它根本没有效果。为什么会这样?谁能帮帮我。
我已将 RecyclerView
直接放在 xml 文件中的 SwipeRefreshView
内。只要将适配器设置为 setFloatingActionButton
,我就会打电话给 RecyclerView
。
public void setFloatingActionButton(final View view) {
float = (android.support.design.widget.FloatingActionButton) getActivity().findViewById(R.id.float);
float.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mRecyclerView.smoothScrollToPosition(0);
android.support.design.widget.Snackbar.make(view, "Scrolled to Top", android.support.design.widget.Snackbar.LENGTH_SHORT)
.setAction("Ok", new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayoutManager llm = (LinearLayoutManager) mRecyclerView.getLayoutManager();
llm.scrollToPosition(0);
}
})
.setActionTextColor(getActivity().getResources().getColor(R.color.coloLink))
.show();
}
});
}
原文由 SRBhagwat 发布,翻译遵循 CC BY-SA 4.0 许可协议
继续上述评论,理想情况下,替换
在浮动操作按钮的
onClick
中应该管用。您也可以删除
SnackBar
代码,因为无论如何您都不需要它。所以,总而言之,你上面的方法应该看起来像如果您说上述方法不起作用,请测试
onClick()
是否被调用。尝试在其中添加一条日志消息,看看它是否打印出来。