2013-08-28 62 views
2

有誰知道一種方法來檢測ListView上的垂直滾動/滑動手勢?我試着聽滑動事件,但它只是從左到右和從右到左的手勢發起,而不是向上或向下。我也嘗試在導致相同行爲的父視圖上聆聽。 在此先感謝您的任何提示或技巧! :)如何檢測ListView上的滾動事件?

回答

2

它似乎並不支持,但一種方法是將列表視圖高度設置爲Ti.UI.SIZE,以便它不滾動,然後將其放入ScrollView。然後聽聽ScrollView上的​​事件。嘗試這樣的:

// Vertical scroll view 
var parentScrollView = Ti.UI.createScrollView({ 
    height : 'auto' 
}); 

// Make a list view that does not scroll 
var listView = Ti.UI.createListView({ 
    height : Ti.UI.SIZE, 
    ... Other initialization here ... 
}); 

parentScrollView.add(listView); 
parentScrollView.addEventListener('scroll', function(e) { 
    // This lets you know where you scrolled to 
    var scrollX = e.x; 
    var scrollY = e.y; 

    // Alternatively use contentOffset 
    var contentOffsetScoped = e.source.contentOffset; 
    var contentOffsetSame = parentScrollView.contentOffset; 
}); 

這是一個極簡主義的例子,但工程。請注意,這種方法可能會從ListView控件中取消任何性能提升,因此最好轉換爲使用TableView。