天天看點

Qt-QML-給我的導覽列寫一個動畫-State-Transition

Qt-QML-給我的導覽列寫一個動畫-State-Transition

這次我是用的是一個狀态動畫,大緻原理就是寫出一個空間的幾個狀态,完了再加一個過度動畫,這裡隻有簡單的屬性動畫,和持續周期

是我的錯誤用法

Qt-QML-給我的導覽列寫一個動畫-State-Transition

開的是時候,我把狀态解除安裝了DLNavigation的子產品裡面,雖然可以實作,但是裡面DLButton控件是沒有動的,是以我把這個狀态動畫移動了上一層中,等于是操作我的整個導覽列的空間,這裡還是有問題的,不過後期再将解除安裝這裡的問題。

先吧代碼截圖位置寫上來

Qt-QML-給我的導覽列寫一個動畫-State-Transition

這裡第一部分是控制按鈕

第二部分是動畫實作部分

DLButton

   {

       width: 100

       height: 100

       x:parent.width-width

       y:0

       onClicked:

       {

           if(navigation.state === "state1")

           {

               navigation.state = "state2"

               console.log("切換至狀态2")

           }

           else

               navigation.state = "state1"

               console.log("切換至狀态1")

           console.log(navigation.width+"   "+navigation.height)

       }

   }

利用一個按鈕的點選事件來控制導覽列的顯示和隐藏,也就是導覽列的兩種狀态的切換

states:

           [

           State {

               name: "state1"

               PropertyChanges {

                   target: navigation

                   y:parent.height

               }

           },

               name: "state2"

                   y:parent.height-navigation.height

       ]

       transitions:

           Transition {

               from: "*"

               to: "*"

               PropertyAnimation {

                   properties: "y"; duration: 1000 }

上面的代碼就是狀态以及切換動畫,兩個狀态之間記得要加都好哦。

喜歡的也可以去我的GitHub上面下載下傳源代碼,同時也指正下我存在的問題,大家共同進步