OptionSelectorのインデックスをすぐに変更する方法(アニメーションなし)[閉まっている]


16

私のアプリでは、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.
         */
    }
}

どんな助けや洞察もありがたいです-乾杯!


問題を再現するのに十分なコードを教えてください。ビデオはもちろん役立ちますが、再利用するコードの断片なしであなたを助けることは非常に困難です(sscce.orgを参照)
Sylvain Pineau

こんにちはSylvain。遅延の謝罪。テストに使用できるQMLファイルを次に示します。新しいUbuntu Simple UIプロジェクトを作成し、メインのQMLファイルを次のように置き換えます:pastebin.ubuntu.com/9534780
Aaron Hastings 14

回答:


0

OptionSelector qmlのコピーは、展開されていないときにUbuntuNumberAnimationを使用していることがわかります。スイッチをオフにするオプションはありません。この機能が必要な場合は、アップストリームにパッチを適用し、ライブラリの新しいバージョンをしばらく待つ必要があります。

ただし、独自のオープンセレクタウィジェットを作成し、アニメーションパーツを削除して、コードで使用できるように名前を変更してください。このルートをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.