ListView PullToRefresh隐藏“;“拉动以刷新”;上面一行下面的字符串

ListView PullToRefresh隐藏“;“拉动以刷新”;上面一行下面的字符串,listview,qml,qtquick2,pull-to-refresh,ubuntu-touch,Listview,Qml,Qtquick2,Pull To Refresh,Ubuntu Touch,我正在创建一个QML布局,其中包含一个列和多个行。第一行包含按钮,第二行包含从网络服务检索的项目列表。我希望能够在列表上执行“pull to refresh”,因此我使用列表视图的PullToRefresh 但是,这会将可见字符串“Pull to refresh…”添加到行输出的顶部,实际显示在第一行顶部附近。这样做是有意义的,除了我希望文本隐藏在第一行下面,直到第二行的列表被拉出来时它才滑出 下面是要复制的最小QML,它可以与qmlscene一起运行: import QtQuick 2.4 i

我正在创建一个QML布局,其中包含一个
列和多个
行。第一行包含按钮,第二行包含从网络服务检索的项目列表。我希望能够在列表上执行“pull to refresh”,因此我使用
列表视图的
PullToRefresh

但是,这会将可见字符串“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()" }
    }
}
我无法将“Pull to refresh…”字符串隐藏在第一行下面。到目前为止,我尝试过但不起作用的事情:

  • 设置
    z
    值,第一行的值越高,第二行的值越低:无效
  • 将按钮包含在
    矩形内的第一行中:矩形不会自动拉伸以适合按钮,行尺寸将塌陷为0
  • 将一个白色的
    矩形
    放在按钮右侧的第一行:这是最有希望的,但这是一个相当棘手的问题
  • 设置一行的背景:未发现这是如何实现的

这一定是一个常见的用例,但我找不到任何答案/示例。如何将“Pull to refresh…”字符串隐藏在上面的行下,直到它被拉入下面的行中?或者,执行此操作时,
是否不是正确的组件?

可以尝试的一件事是使用
列表视图
标题
委托进行“刷新”UI

尝试添加以下行:

        ListView {
            id: listOfThings
            clip: true   // <- this line! 
            height: 500
            width: 400
ListView{
id:物品清单

clip:true//Hi Kevin,你能详细说明我如何使用
标题
委托来完成“拉动刷新”吗行为?我也找不到任何这样的例子。你介意分享一些代码吗?
标题
委托是列表视图可滚动内容的一部分,但位于第一个实际内容项之前。最后的
页脚
也是如此。视图被删除后,将显示其中任何一个我的建议是尝试使用
标题
项,例如,它是否可见(相对于视图开头),以触发刷新。嗨,凯文,谢谢你的澄清。据我所知,这意味着重新实现
PullToRefresh{…}
已经有了。但我会记住这一点,以防我想自定义页眉和页脚的外观。太好了,这正是我想要的-谢谢!我希望文档能够指出像这样常用/需要的属性。