ListView PullToRefresh隐藏上面一行下的“Pull to refresh”字符串

时间:2016-10-03 06:57:06

标签: listview qml qtquick2 pull-to-refresh ubuntu-touch

我正在创建一个QML布局,里面有Column和多个Row。第一行包含按钮,第二行包含从网络服务检索的项目列表。我希望能够在列表中执行“pull to refresh”,因此我使用PullToRefresh的{​​{1}}。

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

这是要重现的最小QML,可以使用ListView

运行
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()" } } } 值,第一行的值越高,第二行的值越低:无效
  • 将按钮括在z内的第一行:矩形不会自动拉伸以适应按钮,行尺寸会折叠为0
  • 在按钮右侧的第一行放置一个白色的Rectangle:这是最有希望的,但它是一个非常黑客
  • 设置行的背景:未找到可能的方式

这必须是一个常见的用例,但我找不到任何答案/例子。如何在其上方的行下隐藏“Pull to refresh ...”字符串,直到它被拉入下面的行?或者,RectangleColumn在执行此操作时不是正确的组件吗?

2 个答案:

答案 0 :(得分:3)

尝试添加此行:

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

答案 1 :(得分:1)

您可以尝试的一件事是使用 #include <iostream> #include <string> using namespace std; int main() { int LoanValue, LoanRate; double LoanValue2; cout << "Loan: "; cin >> LoanValue; cout << "Loan Rate: "; cin >> LoanRate; LoanValue2 = LoanValue+(LoanValue*(double(LoanRate)/100)); cout << LoanValue << ", " << LoanValue2 << ", " << LoanValue2/12; } 的{​​{1}}委托作为“刷新”用户界面