0

我正在尝试显示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.workingfalse并显示 时ListView,我无法滚动。我猜它不限于屏幕大小,所以它认为不需要滚动,因为所有项目都是可见的。但他们不是。我试图添加verticalAlignment: VerticalAlignment.FillhorizontalAlignment: HorizontalAlignment.FillListView没有任何改变。关于如何强制ListView适应屏幕的任何提示?谢谢。

4

1 回答 1

2

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

可见:_manager.working

到活动指示器

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

于 2013-04-26T22:53:32.223 回答