Spark DataGrid в мобильном приложении обрабатывает прокрутку и выбор элемента - PullRequest
1 голос
/ 15 декабря 2011

У меня есть спарк-сетка в мобильном приложении, я установил

interactionMode="touch"

и прокрутка dataGrid хороша, у меня возникли проблемы с добавлением в него * EventListener selectionChange, потому что прокрутка dataGrid автоматически изменит выбор, и вместо простой прокрутки его, функция связанного запускается ...

Как я могу добавить сенсорный день до выбора индекса, чтобы, если я прокручиваю сетку, выбор не изменится, а изменится, только если я нажму на элемент без прокрутки?

1 Ответ

1 голос
/ 21 декабря 2011

Я решил использовать обходной путь ....

Вместо добавления selectionChange eventListener, я использовал mouseUp и mouseDown, чтобы проверить время между кликом и релизом, и если время релиза меньше, чем клик плюс некоторый далай, я возвращаю выбор, иначе нет. ..

<s:DataGrid id="grigliaData"
   sortableColumns="false"
   rowHeight="100"
   interactionMode="touch"
   mouseDown="grigliaData_mouseDownHandler(event)"
   mouseUp="grigliaData_mouseUpHandler(event)"
   top="230" left="5" right="5" bottom="50"
   dataProvider="{listaEventi}" width="100%" height="100%"> 

  //AS Code 
        private var _lastClickEvent:int;
        protected function grigliaData_mouseDownHandler(event:MouseEvent):void
        {
            _lastClickEvent = getTimer();
        }

        protected function grigliaData_mouseUpHandler(event:MouseEvent):void
        {
            if (getTimer() < _lastClickEvent + 200) // 200 = Dalay
            {
                               // return selectedIndex
            }
        }

EDIT: Я также добавил проверку мышиного и мышиного положения, теперь сетка отправляет selectionChange, если время до выпуска и изменение положения меньше, чем значение по умолчанию (время / пиксель) ...

...