Прокрутить гибкую группу данных до максимума программно - PullRequest
0 голосов
/ 06 июля 2011

У меня есть компонент с изменяемой скиной, содержащий группу данных с изображениями. Группа данных прокручивается путем наведения мыши на нее. Все отлично работает, кроме одного: после смены провайдера группы данных мне нужно автоматически прокрутить вниз. Проблема в том, что изображения не загружаются сразу после того, как я установил провайдера, поэтому (contentHeight - height) еще не представляет фактическую максимальную позицию прокрутки. Есть ли простой способ заставить группу данных прокручиваться вниз при загрузке контента? Потому что обходной путь кажется не таким простым.

Это код для прокрутки (thumbnailStrip - моя группа данных):

private function thumbnailStrip_mouseMoveHandler(evt:MouseEvent):void {

            var fr:Number = (thumbnailStrip.contentHeight - thumbnailStrip.height) / thumbnailStrip.height;
            var scroll:Number = fr * evt.stageY - fr * this.y;

            var ms:Number = maxScroll();
            if(scroll > ms) scroll = ms;

            thumbnailStrip.verticalScrollPosition = scroll;
        }

        private function maxScroll():Number {
            return thumbnailStrip.contentHeight - thumbnailStrip.height;
        }

Спасибо, Калин

1 Ответ

0 голосов
/ 06 июля 2011
thumbnailStrip.layout.verticalScrollPosition += thumbnailStrip.layout.getVerticalScrollPositionDelta(NavigationUnit.END);

Возможно, придется выполнить несколько раз, чтобы добраться до самого дна. Предполагается, что будет возвращена разница между текущей позицией прокрутки и «концом» позиции прокрутки. По мере загрузки, я просто продолжал вызывать это в "callLater".

Кстати, есть ошибка для этого: http://bugs.adobe.com/jira/browse/SDK-25740 не уверен, что это исправлено в 4.5, уродливый обходной путь здесь: http://flexponential.com/2011/02/13/scrolling-to-the-bottom-of-a-spark-list/

...