public class ListRowPresenter extends RowPresenter
ListRow
using a
HorizontalGridView
hosted in a ListRowView
.
setHoverCardPresenterSelector(PresenterSelector)
can be used to
display a view for the currently focused list item below the rendered
list. This view is known as a hover card.
RowPresenter
's default dimming effect and draws
a dim overlay on each view individually. A subclass may override and disable
isUsingDefaultListSelectEffect()
and write its own dim effect in
onSelectLevelChanged(RowPresenter.ViewHolder)
.
setShadowEnabled(boolean)
to disable shadows. A subclass may override and return
false in isUsingDefaultShadow()
and replace with its own shadow implementation.Modifier and Type | Class and Description |
---|---|
static class |
ListRowPresenter.SelectItemViewHolderTask
A task on the ListRowPresenter.ViewHolder that can select an item by position in the
HorizontalGridView and perform an optional item task on it.
|
static class |
ListRowPresenter.ViewHolder
ViewHolder for the ListRowPresenter.
|
Presenter.ViewHolderTask
SYNC_ACTIVATED_CUSTOM, SYNC_ACTIVATED_TO_EXPANDED, SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED, SYNC_ACTIVATED_TO_SELECTED
Constructor and Description |
---|
ListRowPresenter()
Constructs a ListRowPresenter with defaults.
|
ListRowPresenter(int focusZoomFactor)
Constructs a ListRowPresenter with the given parameters.
|
ListRowPresenter(int focusZoomFactor,
boolean useFocusDimmer)
Constructs a ListRowPresenter with the given parameters.
|
Modifier and Type | Method and Description |
---|---|
boolean |
areChildRoundedCornersEnabled()
Returns true if rounded corners are enabled for children of this row.
|
protected RowPresenter.ViewHolder |
createRowViewHolder(ViewGroup parent)
Called to create a ViewHolder object for a Row.
|
protected ShadowOverlayHelper.Options |
createShadowOverlayOptions()
Create ShadowOverlayHelper Options.
|
protected void |
dispatchItemSelectedListener(RowPresenter.ViewHolder holder,
boolean selected)
Dispatch item selected event using current selected item in the
HorizontalGridView . |
void |
enableChildRoundedCorners(boolean enable)
Enables or disabled rounded corners on children of this row.
|
void |
freeze(RowPresenter.ViewHolder holder,
boolean freeze)
Freezes/unfreezes the row, typically used when a transition starts/ends.
|
int |
getExpandedRowHeight()
Returns the expanded row height for rows created by this Presenter.
|
int |
getFocusZoomFactor()
Returns the zoom factor used for focus highlighting.
|
PresenterSelector |
getHoverCardPresenterSelector()
Returns the
PresenterSelector used for showing a select object in a hover card. |
int |
getRecycledPoolSize(Presenter presenter)
Returns the recycled pool size for the given presenter.
|
int |
getRowHeight()
Returns the row height for list rows created by this Presenter.
|
boolean |
getShadowEnabled()
Returns true if child shadow is enabled.
|
int |
getZoomFactor()
Deprecated.
use
getFocusZoomFactor() instead. |
protected void |
initializeRowViewHolder(RowPresenter.ViewHolder holder)
Called after a
RowPresenter.ViewHolder is created for a Row. |
boolean |
isFocusDimmerUsed()
Returns true if the focus dimmer is used for focus highlighting; false otherwise.
|
boolean |
isKeepChildForeground()
Returns true if keeps foreground of child of this row, false otherwise.
|
boolean |
isUsingDefaultListSelectEffect()
Returns true so that default select effect is applied to each individual
child of
HorizontalGridView . |
boolean |
isUsingDefaultSelectEffect()
ListRowPresenter overrides the default select effect of
RowPresenter
and return false. |
boolean |
isUsingDefaultShadow()
Default implementation returns true if SDK version >= 21, shadow (either static or z-order
based) will be applied to each individual child of
HorizontalGridView . |
boolean |
isUsingZOrder(Context context)
Returns true if SDK >= L, where Z shadow is enabled so that Z order is enabled
on each child of horizontal list.
|
protected void |
onBindRowViewHolder(RowPresenter.ViewHolder holder,
Object item)
Binds the given row object to the given ViewHolder.
|
protected void |
onRowViewExpanded(RowPresenter.ViewHolder holder,
boolean expanded)
Called when the row view's expanded state changes.
|
protected void |
onRowViewSelected(RowPresenter.ViewHolder holder,
boolean selected)
Called when the given row view changes selection state.
|
protected void |
onSelectLevelChanged(RowPresenter.ViewHolder holder)
Applies select level to header and draw a default color dim over each child
of
HorizontalGridView . |
protected void |
onUnbindRowViewHolder(RowPresenter.ViewHolder holder)
Unbinds the given ViewHolder.
|
void |
setEntranceTransitionState(RowPresenter.ViewHolder holder,
boolean afterEntrance)
Changes the visibility of views.
|
void |
setExpandedRowHeight(int rowHeight)
Sets the expanded row height for rows created by this Presenter.
|
void |
setHoverCardPresenterSelector(PresenterSelector selector)
Sets the
PresenterSelector used for showing a select object in a hover card. |
void |
setKeepChildForeground(boolean keep)
When ListRowPresenter applies overlay color on the child, it may change child's foreground
Drawable.
|
void |
setNumRows(int numRows)
Sets the numbers of rows for rendering the list of items.
|
void |
setRecycledPoolSize(Presenter presenter,
int size)
Sets the recycled pool size for the given presenter.
|
void |
setRowHeight(int rowHeight)
Sets the row height for rows created by this Presenter.
|
void |
setShadowEnabled(boolean enabled)
Enables or disables child shadow.
|
getHeaderPresenter, getRowViewHolder, getSelectEffectEnabled, getSelectLevel, getSyncActivatePolicy, isClippingChildren, onBindViewHolder, onCreateViewHolder, onRowViewAttachedToWindow, onRowViewDetachedFromWindow, onUnbindViewHolder, onViewAttachedToWindow, onViewDetachedFromWindow, setHeaderPresenter, setRowViewExpanded, setRowViewSelected, setSelectEffectEnabled, setSelectLevel, setSyncActivatePolicy
cancelAnimationsRecursive, getFacet, setFacet, setOnClickListener
public ListRowPresenter()
FocusHighlight.ZOOM_FACTOR_MEDIUM
for focus zooming and
disabled dimming on focus.public ListRowPresenter(int focusZoomFactor)
focusZoomFactor
- Controls the zoom factor used when an item view is focused. One of
FocusHighlight.ZOOM_FACTOR_NONE
,
FocusHighlight.ZOOM_FACTOR_SMALL
,
FocusHighlight.ZOOM_FACTOR_XSMALL
,
FocusHighlight.ZOOM_FACTOR_MEDIUM
,
FocusHighlight.ZOOM_FACTOR_LARGE
Dimming on focus defaults to disabled.public ListRowPresenter(int focusZoomFactor, boolean useFocusDimmer)
focusZoomFactor
- Controls the zoom factor used when an item view is focused. One of
FocusHighlight.ZOOM_FACTOR_NONE
,
FocusHighlight.ZOOM_FACTOR_SMALL
,
FocusHighlight.ZOOM_FACTOR_XSMALL
,
FocusHighlight.ZOOM_FACTOR_MEDIUM
,
FocusHighlight.ZOOM_FACTOR_LARGE
useFocusDimmer
- determines if the FocusHighlighter will use the dimmerpublic void setRowHeight(int rowHeight)
rowHeight
- Row height in pixels, or WRAP_CONTENT, or 0
to use the default height.public int getRowHeight()
public void setExpandedRowHeight(int rowHeight)
rowHeight
- The row height in to use when the row is expanded,
in pixels, or WRAP_CONTENT, or 0 to use the default.public int getExpandedRowHeight()
public final int getFocusZoomFactor()
@Deprecated public final int getZoomFactor()
getFocusZoomFactor()
instead.public final boolean isFocusDimmerUsed()
public void setNumRows(int numRows)
protected void initializeRowViewHolder(RowPresenter.ViewHolder holder)
RowPresenter
RowPresenter.ViewHolder
is created for a Row.
Subclasses may override this method and start by calling
super.initializeRowViewHolder(ViewHolder).initializeRowViewHolder
in class RowPresenter
holder
- The ViewHolder to initialize for the Row.public void setRecycledPoolSize(Presenter presenter, int size)
public int getRecycledPoolSize(Presenter presenter)
public final void setHoverCardPresenterSelector(PresenterSelector selector)
PresenterSelector
used for showing a select object in a hover card.public final PresenterSelector getHoverCardPresenterSelector()
PresenterSelector
used for showing a select object in a hover card.protected RowPresenter.ViewHolder createRowViewHolder(ViewGroup parent)
RowPresenter
createRowViewHolder
in class RowPresenter
parent
- The parent View for the Row's view holder.protected void dispatchItemSelectedListener(RowPresenter.ViewHolder holder, boolean selected)
HorizontalGridView
.
The method should only be called from onRowViewSelected().dispatchItemSelectedListener
in class RowPresenter
protected void onRowViewSelected(RowPresenter.ViewHolder holder, boolean selected)
RowPresenter
onRowViewSelected
in class RowPresenter
protected void onRowViewExpanded(RowPresenter.ViewHolder holder, boolean expanded)
RowPresenter
onRowViewExpanded
in class RowPresenter
protected void onBindRowViewHolder(RowPresenter.ViewHolder holder, Object item)
RowPresenter
RowPresenter
overriding
RowPresenter.onBindRowViewHolder(ViewHolder, Object)
must call through the super class's
implementation of this method.onBindRowViewHolder
in class RowPresenter
protected void onUnbindRowViewHolder(RowPresenter.ViewHolder holder)
RowPresenter
RowPresenter
overriding RowPresenter.onUnbindRowViewHolder(ViewHolder)
must call through the super class's implementation of this method.onUnbindRowViewHolder
in class RowPresenter
public final boolean isUsingDefaultSelectEffect()
RowPresenter
and return false.isUsingDefaultSelectEffect
in class RowPresenter
public boolean isUsingDefaultListSelectEffect()
HorizontalGridView
. Subclass may return false to disable
the default implementation.public boolean isUsingDefaultShadow()
HorizontalGridView
.
Subclass may return false to disable default implementation of shadow and provide its own.public boolean isUsingZOrder(Context context)
public final void setShadowEnabled(boolean enabled)
public final boolean getShadowEnabled()
public final void enableChildRoundedCorners(boolean enable)
public final boolean areChildRoundedCornersEnabled()
public final void setKeepChildForeground(boolean keep)
keep
- true if keep foreground of child of this row, false ListRowPresenter might change
the foreground of the child.public final boolean isKeepChildForeground()
protected ShadowOverlayHelper.Options createShadowOverlayOptions()
return new ShadowOverlayHelper.Options().roundedCornerRadius(10);
protected void onSelectLevelChanged(RowPresenter.ViewHolder holder)
HorizontalGridView
.
Subclass may override this method. A subclass
needs to call super.onSelectLevelChanged() for applying header select level
and optionally applying a default select level to each child view of
HorizontalGridView
if isUsingDefaultListSelectEffect()
is true. Subclass may override isUsingDefaultListSelectEffect()
to return
false and deal with the individual item select level by itself.
onSelectLevelChanged
in class RowPresenter
public void freeze(RowPresenter.ViewHolder holder, boolean freeze)
RowPresenter
freeze
in class RowPresenter
public void setEntranceTransitionState(RowPresenter.ViewHolder holder, boolean afterEntrance)
RowPresenter
setEntranceTransitionState
in class RowPresenter
holder
- The ViewHolder of the row.afterEntrance
- true if children of row participating in entrance transition
should be set to visible, false otherwise.