Nativescript 如何在radlistview中检测是向上滚动还是向下滚动

Nativescript 如何在radlistview中检测是向上滚动还是向下滚动,nativescript,gesture,radlistview,Nativescript,Gesture,Radlistview,本机脚本rad列表视图未检测是否向上或向下滑动项目列表 通过使用本机脚本滑动事件,将获得左、右、上和下的4个值,即1、2、4、8。但滑动操作在rad列表视图上不起作用 <lv:RadListView pullToRefresh="true" pullToRefreshInitiated="{{onPullToRefreshInitiated}}" scrolled="onScrolled" scrollOffset="scrollOffset" scroll

本机脚本rad列表视图未检测是否向上或向下滑动项目列表

通过使用本机脚本滑动事件,将获得左、右、上和下的4个值,即1、2、4、8。但滑动操作在rad列表视图上不起作用

        <lv:RadListView pullToRefresh="true" pullToRefreshInitiated="{{onPullToRefreshInitiated}}"
        scrolled="onScrolled" scrollOffset="scrollOffset" scrollStarted="onScrollStarted" scrollEnded="onScrollEnded"
        id="id_content" row="1" items="{{ source }}" loaded="onLoaded" backgroundColor="transparent"
        itemLoading="onItemLoading" itemTap="onItemTap">

            <lv:RadListView.itemTemplate>
                <StackLayout orientation="vertical" 
                backgroundColor="antiquewhite" margin="5" padding="10" borderWidth="1">

                    <Label fontSize="20" text="{{ name }}"/>
                    <Label fontSize="14" text="{{ name }}"/>

                </StackLayout>
            </lv:RadListView.itemTemplate>

            <lv:RadListView.listViewLayout>
                <lv:ListViewStaggeredLayout scrollDirection="Vertical" spanCount="2"/>
            </lv:RadListView.listViewLayout>

            <lv:RadListView.pullToRefreshStyle>
                <lv:PullToRefreshStyle indicatorColor="red" indicatorBackgroundColor="antiquewhite"/>
            </lv:RadListView.pullToRefreshStyle>

        </lv:RadListView>

    </GridLayout>



如何检测radlistview上的向上或向下滑动事件。

比较
滚动开始
滚动结束
事件之间的
滚动偏移量
,如果开始位置小于结束位置,则用户已向上滚动,否则向下滚动

let lastOffset;

export function onScrollStarted(args) {
    lastOffset = args.object.getScrollOffset();
}

export function onScrollEnded(args) {
    let currentOffset = args.object.getScrollOffset();
    console.log(currentOffset < lastOffset ? "Up" : "Down");
    lastOffset = currentOffset;
}
let lastOffset;
导出函数onScrollStarted(args){
lastOffset=args.object.getScrollOffset();
}
Crollended上的导出函数(args){
让currentOffset=args.object.getScrollOffset();
console.log(currentOffset

这是可行的,但不是预期的。我正在设置动作栏的动画,即向下滚动时隐藏,向上滚动时显示。但是从上面的答案来看,当我立即向下滚动时,动画将不会执行。只有在滚动结束后,操作栏才会隐藏。对于这个问题有什么建议吗……你的问题是关于检测上下滚动,所以我必须考虑最好的选择,而不要多次点击事件。如果您想立即检测用户是否正在向上/向下滚动,那么只需使用
scrolled
事件,而不是
scrollEnded
事件。谢谢您的回答。我刚刚将scrollEnded事件更改为onScrollDragEnded事件。这很有效。但是,在制作动画时,我注意到了一些小问题,我还观察到,与使用listView相比,动画并不平滑。非常感谢。