1

我正在开发一个 UI,我需要在任何智能手机中实现类似的拖动状态栏的效果。

这应该在点击时向下滑动元素。(这意味着它的高度增加了)

我尝试使用以下代码获取元素的“NO x,y values change”

MouseArea{
    id : zone2MouseArea
    anchors.fill : parent

    drag.target: zone2ID
    drag.axis: Drag.YAxis
    drag.minimumY: 0
    drag.maximumY: 0.1

}

并且 onYChanged () 我增加了高度。

然而,这并不能满足我的要求。我需要滑动元素来改变它的高度视图而不改变它的 x,y 值

4

1 回答 1

3

我做了一个基本的例子。希望能帮助到你。我现在没有 IDE,所以请检查语法错误

import QtQuick 1.1

Rectangle
{
    width: 560
    height: 560
    color: "blue"

    Rectangle
    {
       id: slider
       width: parent.width
       height: parent.height
       y: - parent.height * .90
       color: "yellow"

       property bool isAtTop: true

       Behavior on y { NumberAnimation { duration: 300 } }

       Text
       {
           text: qsTr("12:34 PM")
           anchors.bottom: parent.bottom
           color: "black"
       }

       Text
       {
           text: qsTr("Battery | Wifi | Updates")
           anchors.centerIn: parent
           color: "black"
           font.pixelSize: 25
       }

       MouseArea
       {
           id: draggingMouse
           anchors.fill : parent
           drag.target: parent
           drag.axis: Drag.YAxis
           drag.minimumY: - parent.height * .90
           drag.maximumY: 0

           onReleased:
           {
               if ( true == slider.isAtTop )
               {
                   if( slider.y < - parent.height * .80 )
                       slider.y = - parent.height * .90
                   else
                   {
                       slider.y = 0
                       slider.isAtTop = false
                   }
               }

               else
               {
                   if( slider.y < - parent.height * .20 )
                   {
                       slider.y = - parent.height * .90
                       slider.isAtTop = true
                   }

                   else
                   {
                       slider.y = 0
                   }
               }

           }
       }
    }
}
于 2013-07-15T11:30:15.603 回答