级联布局问题 - 无法在DockLayout中滚动ListView

时间:2013-04-26 16:53:26

标签: qml blackberry-10 blackberry-cascades

我正在尝试在加载列表数据时显示ActivityIndicator。这是我的页面QML:


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适合屏幕的任何提示?感谢。

1 个答案:

答案 0 :(得分:2)

问题不在于您的列表视图不会滚动,而是ActivityIndi​​cator位于列表视图的顶部,阻止触摸事件向下传播到它下面的列表视图。尝试添加

可见:_manager.working

到ActivityIndi​​cator

现在,当列表视图可见时,您的触摸事件将传递到列表视图。