Визуализация элементов ListView в QML - эмулятор - PullRequest
3 голосов
/ 09 августа 2011

Здравствуйте, у меня есть следующее простое приложение 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"
    }
}
}

Но когда я пытаюсь запустить это на эмуляторе, это обычное поведение при перемещении списка:

  1. Первая строка списка «Элемент1» отображается поверх панели вкладок, даже поверх строки состояния
  2. Следующие строки списка «Элемент2» до ххх отображаются так, что когда они полностью визуализируются только через панель вкладок, они исчезают.(например, «Элемент2» уже не отображается, но «Элемент3» отображается, потому что он не полностью находится над TabBar

Любые идеи о том, почему это так? См. рисунок: Rendering of items in ListView Emualtor

Обновление: я добавил

anchors.fill: parent

к элементу страницы, но это не решило проблему

Решено клип: необходимо добавить значение true вListView

Ответы [ 2 ]

7 голосов
/ 09 августа 2011

Просто добавьте

clip: true 

в ListView

0 голосов
/ 09 августа 2011

Вы привязали вид списка внутри страницы, но не саму страницу.Вы не указали, что должна делать страница в TabGroup.Попробуйте добавить привязки к элементу Page.

...