In meiner App verwende ich einen OptionSelector, um aus einer Liste von Fahrradstationen auszuwählen. Ich habe auch eine Kartenkomponente mit Ortsmarkierungen für jede Station.
Wenn ich auf einen Ortsmarker tippe, ändert sich auch der OptionSelector in den Index der entsprechenden Station, da dies eine gute UX ist.
Was nicht gut ist UX ist, wie der OptionSelector auf diese Indexänderung reagiert, die sich selbst animiert, als ob sie vom Finger des Benutzers bewegt worden wäre. Mit anderen Worten, lange nachdem der Benutzer auf die Kartenmarkierung getippt und alle erforderlichen Informationen erhalten hat, "dreht" sich der OptionSelector immer noch zum Index der Station.
Das folgende Video zeigt dieses Verhalten: https://www.youtube.com/watch?v=jXKWlAmNYsw
Ich möchte, dass dieser OptionSelector seinen Index sofort ohne Animation ändert. Gibt es eine Möglichkeit, dies zu tun?
So mache ich momentan Dinge. Ich bin mehr als froh, korrigiert zu werden, wenn dies die falsche Vorgehensweise ist. Ich verwende ein WorkerScript (mehr oder weniger ein QML-Thread), um API-Aufrufe zu tätigen. Wenn dieses WorkerScript zurückgegeben wird, verschiebt es den OptionSelector folgendermaßen:
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.
*/
}
}
Jede Hilfe oder Einsicht wird gebeten - Prost!