我已经使用过这个:
mRecyclerView.getLayoutManager().scrollToPosition(0);
以编程方式滚动具有CCD_ 2的CCD_。
我试着用RecyclerView
和GridLayoutManager
做同样的事情。
问题是scrollToPosition实际上没有意义,因为一个项目可能在一行的中间。不管怎样,我试过那个代码,但它什么都没做。
有没有一种方法可以用GridLayoutManager
以编程方式滚动RecyclerView
?
实际上:
mRecyclerView.getLayoutManager().scrollToPosition(0);
工作。在我的情况下,这并不是因为我在方法中同步调用它:
public void onDestroyActionMode(ActionMode mode)
这足以将一个可运行的(没有任何延迟)发布到主线程的活套。
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
if (mRecyclerView != null) {
mRecyclerView.scrollToPosition(0);
}
}
});
您可以使用GridLayoutManager 的方法"scrollVerticalyBy">
int scrollVerticallyBy (int dy,
RecyclerView.Recycler recycler,
RecyclerView.State state)
垂直滚动屏幕坐标中的dy像素,并返回行进的距离。默认实现不执行任何操作并返回0。
参考:按垂直滚动