All Classes Functions Properties
ListViewWithPageHeader Class Reference

`#include <plugins/DashViews/listviewwithpageheader.h>`

Inherits QQuickFlickable, and QQuickItemChangeListener.

Inherited by ScopeListView.

## Signals

void | modelChanged ()
void | delegateChanged ()
void | headerChanged ()
void | sectionDelegateChanged ()
void | sectionPropertyChanged ()
void | forceNoClipChanged ()
void | stickyHeaderHeightChanged ()

## Public Member Functions

QAbstractItemModel * | model () const
void | setModel (QAbstractItemModel *model)
QQmlComponent * | delegate () const
void | setDelegate (QQmlComponent *delegate)
QQuickItem * | header () const
void | setHeader (QQuickItem *header)
QQmlComponent * | sectionDelegate () const
void | setSectionDelegate (QQmlComponent *delegate)
QString | sectionProperty () const
void | setSectionProperty (const QString &property)
bool | forceNoClip () const
void | setForceNoClip (bool noClip)
int | stickyHeaderHeight () const
Q_INVOKABLE void | positionAtBeginning ()
Q_INVOKABLE void | showHeader ()
Q_INVOKABLE QQuickItem * | item (int modelIndex) const
Q_INVOKABLE bool | maximizeVisibleArea (int modelIndex)
Q_INVOKABLE bool | maximizeVisibleArea (int modelIndex, int itemHeight)

## Protected Member Functions

void | componentComplete ()
void | viewportMoved (Qt::Orientations orient)
qreal | minYExtent () const
void | itemGeometryChanged (QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry)
void | updatePolish ()

## Properties

QAbstractItemModel | model
QQmlComponent | delegate
QQuickItem | pageHeader
QQmlComponent | sectionDelegate
QString | sectionProperty
bool | forceNoClip
int | stickyHeaderHeight

## Friends

class | ListViewWithPageHeaderTest
class | ListViewWithPageHeaderTestSection
class | ListViewWithPageHeaderTestExternalModel

## Detailed Description

Note for users of this class

ListViewWithPageHeader already loads delegates async when appropiate so if your delegate uses a Loader you should not enable the asynchronous feature since that will need to introduce sizing problems

With the double async it may happen what while we are scrolling down we reach to a point where given the size of the just created delegate with loader not yet loaded (which will be very close to 0) we are already "at the end" of the list, but then a few milliseconds later the loader finishes loading and we could have kept scrolling. This is specially visible at the end of the list where you realize that scrolling ended a bit before the end of the list but the speed of the flicking was good to reach the end

By not having the second async we get a better sizing when the delegate is created and things work better

Definition at line 54 of file listviewwithpageheader.h.

The documentation for this class was generated from the following files:

- plugins/DashViews/listviewwithpageheader.h
- plugins/DashViews/listviewwithpageheader.cpp