天天看點

Android 關于 OnScrollListener 事件順序次數的簡要分析

在 android 的 onscrolllistener 整個事件我主要分析下他的執行順序:

實作滾動事件的監聽接口

之前一直很迷糊,後來仔細測試後得出上面的結論

另外對于 listview 圖檔清單的滾動,應該在 

scroll_state_fling   時讓圖檔不顯示,提高滾動性能讓滾動小姑更平滑

scroll_state_idle     時顯示目前螢幕可見的圖檔

對于 onscroll() 接口方法基本上不用他

之前看文檔上的說法,用谷歌翻譯出來以為 onscroll 方法是滾動完成後的回調,結果實測是滾動執行中的回調,清單稍滾動一段就要觸發幾十次

http://developer.android.com/reference/android/widget/abslistview.onscrolllistener.html

Android 關于 OnScrollListener 事件順序次數的簡要分析

不知是文檔沒描述對,還是翻譯不準确,看他語态過去完成時應該是描述錯了吧,感覺應該是  scrolling 才對

-----------------------------------------------------------------------------------------------------------------------

補充:

之前的順序測試還不夠細緻,今天偶然測試間發現問題:

1. 當手指隻輕觸螢幕不拉動隻會觸發一次 onscroll 方法,不會觸發其他滾動事件

2. 如果手指觸碰螢幕後停滞一下再滑動則首先執行一次 onscroll 方法 然後才是 scroll_state_touch_scroll  事件

3. 如果手指碰到螢幕後直接滑動則第一次就執行 scroll_state_touch_scroll  事件

3. 觸發 scroll_state_touch_scroll 事件後還會繼續多次觸發 onscroll 事件,而不是直接觸發 scroll_state_fling 事件

4. 滾動後 不一定 會觸發  scroll_state_fling 事件,可能和手指滑動的距離有關系

5. 滾動的過程中會多次調用 onscroll 方法

6. 除了 onscroll 觸發多次,其他事件在整個過程中隻會觸發一次

繼續閱讀