2017-07-24 169 views
1

滾動頁面我有一個名爲page2.qml文件中像下面與列表視圖

Page { 
     id: page 

     Rectangle { 
      id: container 
      anchors.fill: parent 
      width: parent.width * 0.8 

      Rectangle { 
       id: title 
       anchors.top: parent.top 
       width: parent.width 
       height: 50 
       color: "salmon" 
      } 

      ListView { 
       id: listView 
       currentIndex: -1 
       anchors.top: title.bottom 
       anchors.bottom: parent.bottom 


       delegate: Rectangle { 
        height: 20 
        width: 100 
        border.color: "red" 
        color: "pink" 
        Text { 
         text: model.index 
        } 
       } 

       model: 100 
      } 
     } 
    } 

的結果是這樣的形象: result

由於列表視圖包含100項,我怎樣才能使整個頁面可滾動?我可以讓listview可滾動,但不是整個頁面。

+2

讓你'容器'作爲[Flickable](http://doc.qt.io/qt-5/qml-qtquick-flickable.html) –

+1

@PraveenKumar我把容器放在一個'flickable'裏面,並設置了'contentHeight:title.height + listView.contentHeight',它非常完美,非常感謝。 – Elsiete

+0

@PraveenKumar請發表您的評論作爲答案,以便我可以接受它。 – Elsiete

回答

2

如果您不需要ListView是由本身,而是你的整個容器滾動需要,你可以使用一個Repeater,而不是把它放在Column裹在裏面Flickable

Flickable { 
    id: container 
    contentHeight: column.implicitHeight 
    contentWidth: width 
    width: parent.width * 0.8 
    height: parent.height 

    Column { 
     id: column 
     width: parent.width 

     Rectangle { 
      id: title 
      width: parent.width 
      height: 50 
      color: "salmon" 
     } 

     Repeater { 
      id: listView 
      model: 100 

      delegate: Rectangle { 
       height: 20 
       width: 100 
       border.color: "red" 
       color: "pink" 
       Text { 
        text: model.index 
       } 
      } 
     } 
    } 
}