2

有谁知道在 ListView 上检测垂直滚动/滑动手势的方法?我尝试收听滑动事件,但它只触发从左到右和从右到左的手势,而不是向上或向下。我还尝试收听导致相同行为的父视图。提前感谢任何提示或技巧!:)

4

2 回答 2

2

似乎不支持此功能,但一种方法是将列表视图高度设置为 Ti.UI.SIZE 使其不会滚动,然后将其放入 ScrollView 中。然后监听scrollScrollView 上的事件。尝试这样的事情:

// 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。

于 2013-08-28T14:37:23.567 回答
1

在每晚构建中修复了该问题,但目前这是一个未解决的问题

https://jira.appcelerator.org/browse/TIMOB-14317

于 2013-08-28T15:09:55.800 回答