2013-04-26 82 views
0

我試圖在列表數據加載時顯示ActivityIndicator。這是我第QML:級聯佈局問題 - 無法在DockLayout中滾動ListView


Page { 
    signal articleClicked(variant article) 

    id: root 

    titleBar: TitleBar { 
     title: qsTr("All feeds") 
     visibility: ChromeVisibility.Visible 
    } // titleBar 

    Container { 
     layout: DockLayout {} 
     ListView { 
      dataModel: _feedModel 
      listItemComponents: [ 
       ListItemComponent { 
        type: "item" 

        FeedListComponent { 
         feed: ListItemData 
        } 
       } 
      ] 
      visible: !_manager.working 

      onTriggered: { 
       if (indexPath.length > 1) { 
        root.articleClicked(dataModel.data(indexPath)); 
       } 
      } 
     } // ListView 

     ActivityIndicator { 
      verticalAlignment: VerticalAlignment.Fill 
      horizontalAlignment: HorizontalAlignment.Fill 
      running: _manager.working 
     } 
    } // Root container 
} // Page 

要顯示ActivityIndicator中心,我使用的是DockLayout。它工作正常。但是,當我將_manager.working切換爲false並顯示ListView時,我無法滾動。我想它不限於屏幕大小,所以它認爲不需要滾動,因爲所有項目都可見。但他們不是。我試圖將verticalAlignment: VerticalAlignment.FillhorizontalAlignment: HorizontalAlignment.Fill添加到ListView,沒有任何更改。任何提示如何強制ListView適合屏幕?謝謝。

回答

2

問題不是你的listview不會滾動,而是ActivityIndi​​cator在列表視圖之上,防止觸摸事件傳播到它下面的列表視圖。嘗試添加

可見:_manager.working

到ActivityIndi​​cator

現在你的觸摸事件時將ListView控件可見通過到ListView。

+0

傻了。這顯然解決了這個問題。謝謝! – 2013-04-27 09:55:13