OptionSelector'daki dizini hemen nasıl değiştirebilirim (animasyon olmadan)? [kapalı]


16

Uygulamamda bisiklet istasyonları listesinden seçim yapmak için bir OptionSelector kullanıyorum. Ayrıca her istasyon için yer işaretçileri olan bir harita bileşenim var.

Bir yer işaretleyicisine dokunduğumda, bu iyi UX olduğu için OptionSelector öğesini karşılık gelen istasyonun dizinine değiştirir.

İyi olmayan UX, OptionSelector'ın bu endeks değişikliğine nasıl tepki verdiğidir, bu da kullanıcının parmağı tarafından hareket ettirilmiş gibi kendini canlandırır. Diğer bir deyişle, kullanıcı harita işaretleyiciye dokunduktan ve ihtiyaç duyduğu tüm bilgileri aldıktan çok sonra, OptionSelector hala istasyonun dizinine "dönüyor".

İşte bu davranışı gösteren bir video: https://www.youtube.com/watch?v=jXKWlAmNYsw

Bu OptionSelector'ın dizini hemen animasyon olmadan değiştirmesini istiyorum. Bunu yapmanın bir yolu var mı?

Şu anda bir şeyler yapıyorum. Eğer bununla ilgili yanlış bir yol buysa, düzeltildiğim için çok mutluyum. API çağrıları yapmak için bir WorkerScript (bir QML iş parçacığı, az ya da çok) kullanıyorum. Bu WorkerScript döndüğünde, OptionSelector öğesini şu şekilde taşır:

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.
         */
    }
}

Herhangi bir yardım veya fikir takdir - alkış!


Lütfen sorununuzu yeniden oluşturmak için yeterli kodu verebilir misiniz? Video elbette faydalıdır, ancak yeniden kullanmak için bir kod pasajı olmadan size yardımcı olmak oldukça zordur (Bkz. Sscce.org )
Sylvain Pineau

Merhaba Sylvain. Gecikme için özür dileriz. İşte test etmek için kullanabileceğiniz bir QML dosyası. Sadece yeni bir Ubuntu Basit UI projesi oluşturun ve ana QML dosyanızı bununla değiştirin: pastebin.ubuntu.com/9534780
Aaron Hastings

Yanıtlar:


0

OptionSelector qml dosyasının bir kopyasını burada genişlemediğinde UbuntuNumberAnimation kullanır. Kapatmak için bir seçenek yoktur ve özellik gerekiyorsa, yukarı doğru yama yapmanız ve kütüphanenin yeni sürümleri için bir süre beklemeniz gerekir.

Yine de kendi açık seçici widget'ınızı oluşturabilir, animasyon bölümünü kaldırabilir ve kodunuzda kullanmak üzere yeniden adlandırdığınızdan emin olabilirsiniz. Bu rotayı tavsiye ederim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.