私のアプリでは、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.
*/
}
}
どんな助けや洞察もありがたいです-乾杯!