如何立即更改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

嗨,西尔万。对于延迟,我们深表歉意。这是可以用来测试的QML文件。只需创建一个新的Ubuntu Simple UI项目,并用以下内容替换您的主要QML文件:pastebin.ubuntu.com/9534780
Aaron Hastings

Answers:


0

您可以在这里看到OptionSelector qml的副本,它在未扩展时会使用UbuntuNumberAnimation。没有关闭它的选项,如果需要此功能,您将不得不修补上游并等待一段时间以获取库的新版本。

不过,您可以制作自己的打开选择器小部件,删除动画部分,并确保将其重命名以在代码中使用。我推荐这条路线。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.