ListView PullToRefresh 在上方一行下隐藏“拉动刷新”字符串

Uni*_*One 5 listview qml qtquick2 pull-to-refresh ubuntu-touch

我正在创建一个 QML 布局,里面有一个Column和多个Rows。第一行包含一个按钮,第二行包含从网络服务中检索到的项目列表。我希望能够做到“拉刷新”就行了,所以我用PullToRefreshListView

但是,这会将可见字符串“Pull to refresh...”添加到行输出的顶部,实际上出现在第一行的顶部附近。这种是有道理的,除了我希望该文本隐藏第一行,直到它在第二行中的列表被拉出时滑出。

这是要重现的最小 QML,可以使用以下命令运行qmlscene

import QtQuick 2.4
import QtQuick.XmlListModel 2.0
import Ubuntu.Components 1.3

MainView {

    id: root
    width: units.gu(50)
    height: units.gu(75)

    Column {
        Row {
            Button {
                id: selector
                text: "Select"
            }
        }
        Row {
            ListView {
                id: listOfThings
                height: 500
                width: 400
                model: things
                delegate: Text {
                    text: title + " (" + pubDate + ")"
                }
                PullToRefresh {
                    refreshing: things.status === XmlListModel.Loading
                    onRefresh: things.reload()
                }
            }
        }
    }

    XmlListModel {
        id: things
        source: "https://news.yahoo.com/rss/"
        query: "/rss/channel/item"
        XmlRole { name: "title"; query: "title/string()" }
        XmlRole { name: "pubDate"; query: "pubDate/string()" }
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法将“拉动刷新...”字符串隐藏在第一行下。到目前为止我尝试过但不起作用的事情:

  • 设置z值,第一行的值较高,第二行的值较低:无效
  • 将第一行中的按钮封闭在 a 内Rectangle:矩形不会自动拉伸以适应按钮,并且行尺寸折叠为 0
  • Rectangle在按钮右侧的第一行放置一个白色:这是最有希望的,但它是一个黑客
  • 设置一行的背景:没有发现这是怎么可能的

这一定是一个常见的用例,但我找不到任何答案/示例。如何隐藏其上方行下方的“拉动以刷新...”字符串,直到将其拉入下方行?或者,在执行此操作时ColumnRows 不是要使用的正确组件吗?