2014-10-28 101 views
0

當我的列表視圖滾動,然後我觸摸屏幕上的其他地方時,應該停止listview滾動。那麼有沒有辦法根據條件停止listView的垂直滾動?動態停止listview的滾動

我可以在編譯和onTouch()之前禁用滾動,我可以返回true以避免滾動,但我不會在沒有觸摸它的情況下停止滾動。

回答

0

可以使用反射來完成。找到這個代碼的地方。

try { 
     Field field = android.widget.AbsListView.class.getDeclaredField("mFlingRunnable"); 
     field.setAccessible(true); 
     Object flingRunnable = field.get(listView); 
     if (flingRunnable != null) { 
       Method method = Class.forName("android.widget.AbsListView$FlingRunnable").getDeclaredMethod("endFling"); 
       method.setAccessible(true); 
       method.invoke(flingRunnable); 
      } 
    } catch (Exception e) {}