2017-03-23 75 views
3

我已經使用LinearSnapHelper實現了一個水平recyclerView,以實現用於選擇特定配置的UI輸入。有點像舊的學校號碼選擇器/選擇器或微調器。中心的項目是選定的位置。如何用LinearSnapHelper以編程方式捕捉到Recycler視圖上的位置

它工作正常,所有,但這裏的問題。在初次啓動時,我需要以編程方式設置回收站視圖的位置,以便所選項目(其索引從磁盤加載)位於中心位置。

.scrollToPosition()無法工作,因爲它將選定的項目放在開頭。

現在我知道我可以完成所有的數學運算並計算x座標並手動設置它,但這就是很多冗餘工作,因爲LinearSnapHelper已經在做這個,我覺得應該有一種方法來重用邏輯,但實際上開始了一個投擲。

我需要這樣的東西LinearSnapHelper.snapToPosition()

+0

我遇到同樣的問題?你是如何解決這個問題的? – sebastian

回答

0

嘗試調用RecyclerView對象smoothScrollToPosition,並通過爲我工作了LinearLayoutManager和LinearSnapHelper位置指數(INT)

mRecyclerView.smoothScrollToPosition(position); 

。它爲最初的卷軸製作動畫,但至少將項目卡入到位。

這是我在棧上的第一篇文章,希望它有助於:)

0

我有我已經加入paddingleftright與適配器虛擬意見recyclerView。因此,第一個「實際」物品可以被捕捉到。

我不能讓smoothScrollToPosition(0)工作,雖然爲最初的捕捉。我使用以下內容

recycler.scrollBy(snapHelper.calculateDistanceToFinalSnap(binding.recycler.getLayoutManager(), recycler.getChildAt(1))[0], 0); 

不是最好看的方式,但似乎工作!

相關問題