Есть ли способ отключить эффект отскока полосы прокрутки / списка в flex 4.5 (mobile)? - PullRequest
1 голос
/ 17 мая 2011

Я пытаюсь создать свой собственный компонент, который ведет себя как список и поддерживает бесконечную прокрутку (в 1-мерном: вертикальном или горизонтальном) - в обоих направлениях.Например, вертикально выложенный список, который пользователь может прокручивать вверх или вниз навсегда, не нажимая ни на «последний», ни «первый» элемент.Хорошее использование для этого: календарь, который отображает каждый месяц в виде элемента списка.

В любом случае, есть множество вещей, которые нужно преодолеть.Первым из них, я думаю, является отключение эффектов отскока полосы прокрутки (появилось в последнем Flex 4.5 (mobile) SDK).

Если я могу отключить эффекты отскока, я думаю, что я могу добавить/ удалите элементы по мере необходимости в список, и он будет бесконечно прокручиваться.

Есть идеи?

Кришна

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

Лично, бесконечный список будет означать большую переработку основного компонента List.Работать над реинжинирингом очень много, и вы, вероятно, врежетесь в стену.Я думаю, что вы хотите сделать, это создать компонент с нуля и расширить SkinnableContainer.

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

1 голос
/ 05 декабря 2013

По моему опыту, вы можете просто реализовать отложенную загрузку компонента List, добавив событие изменения свойства в область просмотра группы данных списка

list.dataGroup.addEventListener( PropertyChangeEvent.PROPERTY_CHANGE, onScrollPropertyChangeHandler );

Затем в событии прослушайте положение вертикальной прокрутки

if ( event.property == "verticalScrollPosition" ){
    var listHeight:Number = itemList.height;
    var curAnchorPoint:Number = event.newValue + listHeight; 
    var bottomPositionToLoad:Number = 200; // Start loading when the list nearly reach the bottom minus 200
    var anchorToLoadNextPage:Number = itemList.dataGroup.contentHeight - bottomPositionToLoad;

    if(curAnchorPoint >= anchorToLoadNextPage){
    loadNextPage(); 
    }
}

Когда работает loadNextPage (), не забудьте удалить событие изменения свойства, чтобы loadNextPage не вызывался несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...