2016-04-14 38 views
-1

我在我的自定義佈局中有一個回收器視圖,我附加了一個LinearLayoutManager和我的自定義適配器。LayoutManager不會滾動到firstCompletelyVisibleItem

this.recyclerList = (RecyclerView) findViewById(R.id.custom_number_picker_list); 
    this.layoutManager = new LinearLayoutManager(getContext()); 
    this.recyclerList.setLayoutManager(layoutManager); 
    this.numberAdapter = new NumberAdapter(); 
    this.recyclerList.setAdapter(numberAdapter); 

我想讓layoutManager滾動到firstCompletelyVisibleItem位置。 滾動到此位置的命令只是忽略

但是,如果我通過

layoutManager.findFirstVisibleItemPosition(); 

查詢的第一可見(不完整)的位置,然後通過

layoutManager.scrollToPosition(firstVisible); 

設置此位置,然後它工作正常。但如果我想滾動firstCompletelyVisibleItem, 如上所述,它將被忽略。

這是爲什麼?有什麼我失蹤了嗎?

+0

沒有評論的投票沒有價值。 – JacksOnF1re

回答

0

好吧,現在我知道爲什麼會發生這種情況。我只是傾卸閱讀文檔! 我通常會刪除這個問題,但據我所知, 完全是這樣的,所以我爲未來的讀者提供了答案。

它在文檔:

RecyclerView將滾動是必要使 目標位置可見的最低金額。

這意味着,如果該項目已經完全可見的(這是,如果查詢的firstCompletelyVisibleItem),那麼回收視圖將只是沒有滾動並忽略請求。

我認爲完成這一點的關鍵是使用scrollToPosition和offest方法。