如何在QML中使用ListView并导航到其它页面中

 我来答
huanglenzhi
2015-07-02 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517199
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  1)使用PageStack来完成

  在我们的RssReader中的例子中,我们使用了PageStack来完成我们的导航。我们可以把我们的每个页面都做成我们的Page。当我们的页面被点击后,我们把新的Page压入栈中。在返回时,我们只需要点击返回按钮即可:

  

  我们可以在我的例程中找到相应的代码。

  2)使用一个不可见的显示在需要时显示出来

  在我们的使用中,我们使用两个重叠在一起的窗口,但是详细的页面只有在ListView中的item被点击后才能显示。在默认的情况下,我们显示ListView。

  [html] view plaincopy在CODE上查看代码片派生到我的代码片
  ListView {
  id: listview
  
  clip: true
  anchors.fill: parent
  model:mymodel
  
  header: Text {
  text: "This is the header"
  font.pixelSize: 30
  
  Rectangle {
  anchors.top: parent.bottom
  width: listview.width
  height: units.gu(0.4)
  color: "blue"
  }
  }
  
  delegate: MyDelegate {}
  
  footer: Text {
  text: "This is the footer"
  font.pixelSize: 30
  }
  }
  
  Item {
  id: popup
  visible: false
  clip: true
  property url loadUrl
  onLoadUrlChanged: {
  opacity = 0;
  visible = (loadUrl == '' ? false : true);
  console.log("opacity: " + opacity );
  console.log("visible: " + visible );
  }
  anchors.fill: parent
  Rectangle {
  id: bg
  anchors.fill: parent
  color: "white"
  }
  MouseArea{
  anchors.fill: parent
  enabled: popup.visible
  //Eats mouse events
  }
  Loader{
  focus: true
  source: popup.loadUrl
  width: parent.width
  height: parent.height -toolbar.height
  }
  
  Rectangle {
  id: toolbar
  width: parent.width
  height: units.gu(4)
  anchors.bottom: parent.bottom
  color: "blue"
  
  Icon {
  name: "previous"
  width: units.gu(3.5)
  height: units.gu(3.5)
  
  MouseArea {
  anchors.fill: parent
  onClicked: {
  popup.loadUrl = "";
  ani.running = true;
  }
  }
  }
  }
  
  NumberAnimation on opacity {
  id: ani
  from: 0
  to: 1
  duration: 3000
  }
  }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式