我正在開發一個具有滾動視圖的android應用程序。我已經從ScrollView覆蓋了我的視圖,並實現了onScrollChanged方法。當scrollview滾動併到達底部時,它會加載更多產品並將它們添加到scrollvew。我有一個奇怪的問題。第一次產品加載時,我試圖拖動scrollview,onScrollChanged從來沒有發生。然後,我用Google搜索,發現了一句:Android onScrollChanged()沒有被調用
scrollView.setOnTouchListener(new ListView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});
加入這一點,當我嘗試從滾動型的空白區域拖動滾動視圖後,它開始叫onScrollChanged事後我開始從別的地方拖動,onScrollChanged被調用。我的問題是,爲什麼它的行爲如此呢?無論觸摸事件開始,它都應該調用onScrollChanged。我希望,我很好地解釋了我的觀點。任何解決方案
所以你已停用按Scroll和reeanbling它。爲什麼? – Radu
我在任何時候都不禁用滾動條。加載第一次內容時,除非從空白區域開始滾動,否則滾動不起作用。沒有孩子的意義上是空的。當我通過觸摸任何孩子進行滾動時,它不會但只是第一次。滾動開始後,一切都正常。 –
你叫什麼requestDisallowInterceptTouchEvent。 – Radu