2014-12-19 46 views
0

Setting a scroll listener Android上的AbsListView會立即調用偵聽器。這顯然是有意從the source of AbsListView.java爲什麼調用Android ListView的setOnScrollListener立即調用偵聽器,即使沒有滾動?

public void setOnScrollListener(OnScrollListener l) { 
    mOnScrollListener = l; 
    invokeOnItemScrollListener(); 
} 

爲什麼會有人要嗎?

設置點擊/觸摸偵聽器不會立即調用偵聽器,爲什麼滾動偵聽器不同?我錯過了一些合理的理由嗎?

相關的問題,其中有人在這個怪異的行爲咬傷:onScroll gets called when I set listView.onScrollListener(this), but without any touch

回答

1

這樣滾動收聽通知列表的初始位置。因爲列表總是滾動到某處(即使只是0),而點擊和觸摸並不總是發生。

最後,這只是一個設計決定,他們可能已經走了。它並不罕見 - 如果有數據可用,很多GUI框架將立即調用監聽器。如果這樣會讓你感到不安,請讓你的聽衆忽略第一個電話。

相關問題