QML: плоский список без прокрутки - PullRequest
1 голос
/ 13 марта 2019

Я хочу, чтобы два представления списка следовали друг за другом в большом ScrollView, скажем, потому что у них немного разные делегаты.Таким образом, макет выглядит следующим образом:

Layout with two list views in a scroll view]

К сожалению, тип ListView также является мерцающим, поэтому он не представляет весь свой контент в виде плоского списка, подходящего для размещения внутри вида прокрутки.,Так как мне это сделать с помощью Qt Quick views?

Я попробовал хитрость: я могу изменить размеры представлений списка следующим образом:

    ListView {
        id: list1

        height: contentHeight + spacing * count

        model: superModel
        delegate: delegate1
    }

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

1 Ответ

1 голос
/ 13 марта 2019

Вы должны использовать ColumnLayout с двумя Repeater в ScrollView (или Flickable, если хотите)

ScrollView {
    contentWidth: width   //maybe you don't need this

    ColumnLayout {
        width: parent.width   //maybe you don't need this

        Repeater {
            model: superModel1
            delegate: delegate1
        }

        Repeater {
            model: superModel2
            delegate: delegate2
        }
    }
}

Поскольку вы не показывали делегата, выможет потребоваться незначительная настройка implicitHeight и / или implicitWidth.

...