2016-06-09 151 views
1

一個RecyclerView我已經使用這個:編程滾動與GridLayoutManager

mRecyclerView.getLayoutManager().scrollToPosition(0); 

以編程方式滾動RecyclerViewLinearLayoutManager

我試圖做一個RecyclerViewGridLayoutManager

問題是,scrollToPosition並沒有什麼意義,因爲一個項目可以在一行的中間。 無論如何,我試過這個代碼,它沒有做任何事情。

有沒有辦法以編程方式滾動RecyclerViewGridLayoutManager

回答

1

其實:

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); 
      } 
     } 
    }); 
0

您可以通過DY像素的屏幕座標使用方法「scrollVerticallyBy」 GridLayoutManager

滾動的
int scrollVerticallyBy (int dy, 
       RecyclerView.Recycler recycler, 
       RecyclerView.State state) 

垂直和返回行駛的距離。默認實現不執行任何操作,並返回0。

編號:scrollVerticallyBy

+1

沒錯,但這意味着我必須自己實現滾動。我正在尋找GridLayoutManager的實施 – kingston

+0

的一點支持是的,也許有其他的解決方案,但根據參考這是它。 –