애니메이션없이 OptionSelector에서 즉시 색인을 변경하는 방법은 무엇입니까? [닫은]


16

내 앱에서는 OptionSelector를 사용하여 자전거 스테이션 목록에서 선택합니다. 또한 각 역에 대한 아이콘이있는지도 구성 요소가 있습니다.

장소 표시기를 탭하면 OptionSelector도 해당 스테이션의 색인으로 변경됩니다. 이것은 좋은 UX이므로.

UX가 좋지 않은 것은 OptionSelector가이 인덱스 변경에 응답하는 방식인데, 이는 사용자의 손가락으로 튕겨 진 것처럼 애니메이션됩니다. 즉, 사용자가 맵 마커를 탭하고 필요한 모든 정보를 수신 한 후에도 OptionSelector는 여전히 스테이션의 인덱스에 "회전"합니다.

다음은이 동작을 보여주는 비디오입니다. https://www.youtube.com/watch?v=jXKWlAmNYsw

이 OptionSelector가 애니메이션없이 즉시 색인을 변경하고 싶습니다. 이 방법이 있습니까?

여기 내가 현재하는 일이 있습니다. 이것이 잘못된 방법 인 경우 수정을 기뻐합니다. API를 호출하기 위해 WorkerScript (QML 스레드, 다소간)를 사용합니다. 이 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

답변:


0

여기 에서 OptionSelector qml의 사본을 볼 수 있습니다 가 확장되지 때이 UbuntuNumberAnimation을 사용합니다. 이 기능을 끄는 옵션이 없으며 기능이 필요한 경우 업스트림에 패치를 적용하고 새 버전의 라이브러리를 기다려야합니다.

그래도 자신 만의 개방형 선택기 위젯을 만들고 애니메이션 부분을 제거한 다음 코드에서 사용할 수 있도록 이름을 변경해야합니다. 이 경로를 추천합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.