在QML中渲染ListView项 - 模拟器

web*_*man 3 listview rendering emulation qml

您好我有以下简单的QML应用程序:

import QtQuick 1.0
import com.nokia.symbian 1.0

Window {
   id: window

   StatusBar {
       id: statusBar
       anchors.top: window.top
   }

   TabBar {
       id: tabBar
       anchors.top: statusBar.bottom

    TabButton {
        id: someButton
        text: "Something"
        tab: somePage
    }
}

TabGroup {
    id: tabGroup
    anchors.top: tabBar.bottom
    anchors.bottom: toolBar.top
    anchors.left: parent.left
    anchors.right: parent.right
    Page {
        id: somePage
        ListView {
            id: someLView
            anchors.fill: parent
            model: someModel
            delegate:
                    Text {
                        text: name
                        color: "white"
                    }
        }
    }
}

ToolBar {
    id: toolBar
    anchors.bottom: window.bottom
    tools: ToolBarLayout {
        id: toolBarLayout
        ToolButton {
            flat: true
            iconSource: "toolbar-back"
            onClicked: Qt.quit()
        }
    }
}

ListModel {
    id: someModel
    ListElement {
        name: "Element1"
    }
    ListElement {
        name: "Element2"
    }
    ListElement {
        name: "Element3"
    }
    ListElement {
        name: "Element4"
    }
    ListElement {
        name: "Element5"
    }
    ListElement {
        name: "Element6"
    }
    ListElement {
        name: "Element7"
    }
    ListElement {
        name: "Element8"
    }
    ListElement {
        name: "Element9"
    }
    ListElement {
        name: "Element10"
    }
    ListElement {
        name: "Element11"
    }
    ListElement {
        name: "Element12"
    }
    ListElement {
        name: "Element13"
    }
    ListElement {
        name: "Element14"
    }
    ListElement {
        name: "Element15"
    }
    ListElement {
        name: "Element16"
    }
    ListElement {
        name: "Element17"
    }
    ListElement {
        name: "Element18"
    }
    ListElement {
        name: "Element19"
    }
    ListElement {
        name: "Element20"
    }
    ListElement {
        name: "Element21"
    }
    ListElement {
        name: "Element22"
    }
    ListElement {
        name: "Element23"
    }
}
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在模拟器上运行它时,这是移动列表时的常见行为:

  1. 列表"Element1"的第一行甚至在StatusBar上呈现在TabBar上
  2. 列表中的"Element2"到xxx的行后面会被渲染,这样当它们完全渲染到TabBar上时,它们就会消失.(例如"Element2"已经没有渲染,但是"Element3"被渲染,因为它没有完全覆盖TabBar

任何想法为什么会这样?看图: 在ListView Emualtor中呈现项目

更新:我补充说

anchors.fill: parent
Run Code Online (Sandbox Code Playgroud)

到页面元素,但这并没有解决问题

求助 剪辑:true需要添加到ListView

bla*_*raz 7

只需添加

clip: true 
Run Code Online (Sandbox Code Playgroud)

到ListView