как определить, следует ли прокрутить вверх или вниз в radlistview - PullRequest
0 голосов
/ 06 февраля 2019

Собственный сценарий Rad-List-View не определяет, проводите ли вверх или вниз по списку элементов.

При использовании события свистка с собственным сценарием, один получит 4 значения для left, right, top и bottom, т.е. 1, 2,4,8.но действие смахивания не работает в режиме просмотра списка рад.

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

как обнаружить событие смахивания вверх или вниз в обзоре radlist.

1 Ответ

0 голосов
/ 06 февраля 2019

Сравните scrollOffset между scrollStarted и scrollEnded событием, если начальная позиция меньше конечной позиции, то пользователь прокрутил вверх, вниз в противном случае.

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;
}

Пример игровой площадки

...