Spark DataGrid в мобильном приложении обрабатывает прокрутку и выбор элемента
У меня есть спарк-сетка в мобильном приложении, я установил
interactionMode="touch"
и прокрутка dataGrid хороша, у меня возникли проблемы с добавлением selectionChange
EventListener к нему, потому что прокрутка dataGrid автоматически изменит выбор и вместо простой прокрутки его, функция связанного запустится...
Как я могу добавить Touch Dalay перед выбором индекса, чтобы, если я прокручиваю сетку, выбор не изменится, а изменится, только если я нажму на элемент без прокрутки?
1 ответ
Я решил использовать обходной путь....
Вместо добавления 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
}
}
РЕДАКТИРОВАТЬ: я также добавил проверку на mouseX и mouseY позиции, теперь сетка отправляет selectionChange, если время до выпуска и изменение позиции меньше, чем по умолчанию dalay (время / пиксель)...