2017-07-26 19 views
1

我使用attachToRecyclerView(RecyclerView),它的工作原理如下。如何從RecyclerView中刪除SnapHelper

問題:在某些時候,我想要相同的recyclerView正常滾動,如何實現?

代碼:

PagerSnapHelper pagerSnapHelper = new PagerSnapHelper(); 
pagerSnapHelper.attachToRecyclerView(recyclerView); 
+0

你讀過'SnapHelper#attachToRecyclerView'文檔嗎?官方文件中有什麼不清楚的地方? *「通過調用setOnFlingListener(RecyclerView.OnFlingListener)將SnapHelper連接到提供的RecyclerView,您可以使用null調用此方法,將它從當前的RecyclerView中分離出來。」* – pskink

+0

顯然僅僅添加'clearOnScrollListeners(); '做了 – Belzebub

+0

剛纔'com.android.support:recyclerview -v7:25.1.0'測試 - 你可以使用'attachToRecyclerView'連接/分離同樣的'SnapHelper'多次,只要你想 – pskink

回答

4

recyclerview-v7:25.1.0凝望,就足以叫

snapHelper.attachToRecyclerView(null); 

刪除SnapHelper

我面臨同樣的問題。在 RecyclerView實例調用

clearOnScrollListeners(); 
setOnFlingListener(null); 

奏效了我。僅調用 setOnFlingListener(null);是不夠的,在我的情況

+0

感謝您的回答,它的工作,但我不能再附加它 – Belzebub

+0

相同的實例?嘗試創建一個PagerSnapHelper的新實例 – Blackbelt

+1

只是試了一下,像魅力一樣工作 – Belzebub

5

嗯,這是寫在SnapHelper官方的API:公共方法=> attachToRecyclerView:該RecyclerView實例要添加這個幫助或空,如果你想哪從目前的RecyclerView刪除SnapHelper。] https://developer.android.com/reference/android/support/v7/widget/SnapHelper.html#attachToRecyclerView%28android.support.v7.widget.RecyclerView%29

+0

這應該是被接受的答案。請注意,如果您的應用程序允許在RecyclerView上切換多個LayoutManagers,例如網格佈局和SnapPage佈局,請不要忘記從RecyclerView中分離/移除SnapHelper(切換到網格視圖後)。否則,當在網格視圖列表上滾動或拋出時,您會看到意外的行爲。 –

相關問題