2013-08-28 38 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。