Unity 8
ListViewWithPageHeader Class Reference

#include <plugins/Dash/listviewwithpageheader.h>

Inherits QQuickFlickable, and QQuickItemChangeListener.

Signals

void modelChanged ()
 
void delegateChanged ()
 
void headerChanged ()
 
void sectionDelegateChanged ()
 
void sectionPropertyChanged ()
 
void forceNoClipChanged ()
 
void stickyHeaderHeightChanged ()
 
void headerItemShownHeightChanged ()
 
void cacheBufferChanged ()
 

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
 
qreal headerItemShownHeight () const
 
int cacheBuffer () const
 
void setCacheBuffer (int cacheBuffer)
 
Q_INVOKABLE void positionAtBeginning ()
 
Q_INVOKABLE void showHeader ()
 
Q_INVOKABLE int firstCreatedIndex () const
 
Q_INVOKABLE int createdItemCount () const
 
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 () override
 
void viewportMoved (Qt::Orientations orient) override
 
qreal minYExtent () const override
 
void itemGeometryChanged (QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override
 
void itemImplicitHeightChanged (QQuickItem *item) override
 
void updatePolish () override
 

Properties

QAbstractItemModel model
 
QQmlComponent delegate
 
QQuickItem pageHeader
 
QQmlComponent sectionDelegate
 
QString sectionProperty
 
bool forceNoClip
 
int stickyHeaderHeight
 
qreal headerItemShownHeight
 
int cacheBuffer
 

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 46 of file listviewwithpageheader.h.


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