2014-05-21 47 views
1

我正在開發一個具有滾動視圖的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。我希望,我很好地解釋了我的觀點。任何解決方案

+0

所以你已停用按Scroll和reeanbling它。爲什麼? – Radu

+0

我在任何時候都不禁用滾動條。加載第一次內容時,除非從空白區域開始滾動,否則滾動不起作用。沒有孩子的意義上是空的。當我通過觸摸任何孩子進行滾動時,它不會但只是第一次。滾動開始後,一切都正常。 –

+0

你叫什麼requestDisallowInterceptTouchEvent。 – Radu

回答

1

你爲什麼不使用endless adapter與像ListViewGridView以期達到所期望的行爲,而不是

+0

首先,我有一些不能用listview或gridview實現的自定義UI需求。其次,無盡的適配器有非常高的工作,我不想在我的應用程序中添加。我正在尋找一些使用scrollview的解決方法。 –

+0

檢查此鏈接http://stackoverflow.com/questions/8181828/android-detect-when-scrollview-stops-scrolling – elmorabea

+0

朋友,請閱讀我的問題。我不關心滾動開始或結束的時間。我只是希望每當用戶滾動時,它應該滾動任何用戶點擊或開始拖動。 –

相關問題