У своєму додатку я використовую OptionSelector, щоб вибрати зі списку велосипедних станцій. У мене також є компонент карти з маркерами місць для кожної станції.
Коли я натискаю на маркер місця, він також змінює OptionSelector на індекс відповідної станції, оскільки це добре UX.
Що не добре UX - це те, як OptionSelector реагує на цю зміну індексу, яка анімує себе так, ніби вона була натиснута пальцем користувача. Іншими словами, довго після того, як користувач доторкнувся до маркера карти і отримав всю необхідну інформацію, OptionSelector все ще «крутиться» до індексу станції.
Ось відео, що демонструє таку поведінку: https://www.youtube.com/watch?v=jXKWlAmNYsw
Я хотів би, щоб цей OptionSelector просто змінив свій індекс негайно, без анімації. Чи є спосіб це зробити?
Ось як я зараз роблю справи. Я більш ніж радий, що мене виправлять, якщо це неправильний шлях щодо цього. Я використовую WorkerScript (нитку QML, більш-менш) для здійснення дзвінків API. Коли цей WorkerScript повертається, він переміщує OptionSelector так:
WorkerScript {
id: queryStationsWorker
source: "../js/getstations.js"
onMessage: {
[...]
// Move the OptionSelector to the corresponding station's index.
stationSelector.selectedIndex = getLastStationIndex(lastStation.contents.stationName, stationsModel)
/*
* For the sake of clarity:
*
* getLastStationIndex() is a function which just returns an integer.
* lastStation is a U1DB database used for state saving.
* stationsModel is a model containing all of the stations.
*/
}
}
Будь-яка допомога чи прозріння цінується - привіт!