我正在尝试在加载列表数据时显示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.Fill
和horizontalAlignment: HorizontalAlignment.Fill
添加到ListView
,没有任何更改。有关如何强制ListView
适合屏幕的任何提示?感谢。
答案 0 :(得分:2)
问题不在于您的列表视图不会滚动,而是ActivityIndicator位于列表视图的顶部,阻止触摸事件向下传播到它下面的列表视图。尝试添加
可见:_manager.working
到ActivityIndicator
现在,当列表视图可见时,您的触摸事件将传递到列表视图。