public class DetailsOverviewLogoPresenter extends Presenter
DetailsOverviewRow.getImageDrawable()
and binds to ImageView
.
Default implementation assumes no scaleType on ImageView and uses intrinsic width and height of
DetailsOverviewRow.getImageDrawable()
to initialize ImageView's layout params. To
specify a fixed size and/or specify a scapeType, subclass should change ImageView's layout params
and scaleType in onCreateView(ViewGroup)
.
Subclass may override and has its own image view. Subclass may also download image from URL
instead of using DetailsOverviewRow.getImageDrawable()
. It's subclass's responsibility to
call FullWidthDetailsOverviewRowPresenter.notifyOnBindLogo(FullWidthDetailsOverviewRowPresenter.ViewHolder)
whenever isBoundToImage(ViewHolder, DetailsOverviewRow)
turned to true so that activity
transition can be started.
Modifier and Type | Class and Description |
---|---|
static class |
DetailsOverviewLogoPresenter.ViewHolder
ViewHolder for Logo view of DetailsOverviewRow.
|
Presenter.ViewHolderTask
Constructor and Description |
---|
DetailsOverviewLogoPresenter() |
Modifier and Type | Method and Description |
---|---|
boolean |
isBoundToImage(DetailsOverviewLogoPresenter.ViewHolder viewHolder,
DetailsOverviewRow row)
Returns true if the logo view is bound to image.
|
void |
onBindViewHolder(Presenter.ViewHolder viewHolder,
Object item)
Bind logo View to drawable of DetailsOverviewRow and call notifyOnBindLogo().
|
View |
onCreateView(ViewGroup parent)
Create a View for the Logo, default implementation loads from
R.layout#lb_fullwidth_details_overview_logo . |
Presenter.ViewHolder |
onCreateViewHolder(ViewGroup parent)
Creates a new
View . |
void |
onUnbindViewHolder(Presenter.ViewHolder viewHolder)
Unbinds a
View from an item. |
void |
setContext(DetailsOverviewLogoPresenter.ViewHolder viewHolder,
FullWidthDetailsOverviewRowPresenter.ViewHolder parentViewHolder,
FullWidthDetailsOverviewRowPresenter parentPresenter)
Called from
FullWidthDetailsOverviewRowPresenter to setup FullWidthDetailsOverviewRowPresenter
and FullWidthDetailsOverviewRowPresenter.ViewHolder that hosts the logo. |
cancelAnimationsRecursive, getFacet, onViewAttachedToWindow, onViewDetachedFromWindow, setFacet, setOnClickListener
public View onCreateView(ViewGroup parent)
R.layout#lb_fullwidth_details_overview_logo
. Subclass may override this method to use
a fixed layout size and change ImageView scaleType. If the layout params is WRAP_CONTENT for
both width and size, the ViewHolder would be using intrinsic size of Drawable in
onBindViewHolder(Presenter.ViewHolder, Object)
.parent
- Parent view.public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent)
Presenter
View
.onCreateViewHolder
in class Presenter
public void setContext(DetailsOverviewLogoPresenter.ViewHolder viewHolder, FullWidthDetailsOverviewRowPresenter.ViewHolder parentViewHolder, FullWidthDetailsOverviewRowPresenter parentPresenter)
FullWidthDetailsOverviewRowPresenter
to setup FullWidthDetailsOverviewRowPresenter
and FullWidthDetailsOverviewRowPresenter.ViewHolder that hosts the logo.viewHolder
- parentViewHolder
- parentPresenter
- public boolean isBoundToImage(DetailsOverviewLogoPresenter.ViewHolder viewHolder, DetailsOverviewRow row)
DetailsOverviewRow.getImageDrawable()
is not null.
If subclass of DetailsOverviewLogoPresenter manages its own image drawable, it should
override this function to report status correctly and invoke
FullWidthDetailsOverviewRowPresenter.notifyOnBindLogo(FullWidthDetailsOverviewRowPresenter.ViewHolder)
when image view is bound to the drawable.public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item)
DetailsOverviewLogoPresenter.ViewHolder.isSizeFromDrawableIntrinsic()
is true.onBindViewHolder
in class Presenter
viewHolder
- ViewHolder to bind.item
- DetailsOverviewRow object to bind.public void onUnbindViewHolder(Presenter.ViewHolder viewHolder)
Presenter
View
from an item. Any expensive references may be
released here, and any fields that are not bound for every item should be
cleared here.onUnbindViewHolder
in class Presenter