繁体   English   中英

如何在ListView上检测滚动事件?

[英]How to detect scroll event on a ListView?

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

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

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

每晚版本中都有此问题的修复程序,但当前这是一个未解决的问题

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM