我有一个包含RecyclerView
的片段,其中使用LinearLayoutManager
来布局CardView
项。当点击浮动操作按钮时,应该将项目滚动到顶部。我已经尝试使用scrollToPosition
和scrollToPositionWithOffset
方法,并将其与RecyclerView
和LinearLayoutManager
一起使用,如下所示。但这些尝试都没有效果。为什么会这样呢?请问有人可以帮帮我吗。
我在xml文件中直接将RecyclerView
放置在SwipeRefreshView
中。我在设置适配器后立即调用setFloatingActionButton
方法。
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();
}
});
}
scrollToPosition
。无论如何,尝试在一些延迟后运行它,通过使用一些延迟并进行检查。http://developer.android.com/reference/android/view/View.html#postDelayed(java.lang.Runnable, long)
- Antrromet