2013-04-26 81 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