belongs to Maven artifact androidx.leanback:leanback:1.0.0-alpha1

DetailsOverviewLogoPresenter

public class DetailsOverviewLogoPresenter
extends Presenter

java.lang.Object
   ↳ androidx.leanback.widget.Presenter
     ↳ androidx.leanback.widget.DetailsOverviewLogoPresenter


Presenter that responsible to create a ImageView and bind to DetailsOverviewRow. The default implementation uses 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.

Summary

Nested classes

class DetailsOverviewLogoPresenter.ViewHolder

ViewHolder for Logo view of DetailsOverviewRow. 

Public constructors

DetailsOverviewLogoPresenter()

Public methods

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.

Inherited methods

Public constructors

DetailsOverviewLogoPresenter

DetailsOverviewLogoPresenter ()

Public methods

isBoundToImage

boolean isBoundToImage (DetailsOverviewLogoPresenter.ViewHolder viewHolder, 
                DetailsOverviewRow row)

Returns true if the logo view is bound to image. Subclass may override. The default implementation returns true when 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.

Parameters
viewHolder DetailsOverviewLogoPresenter.ViewHolder

row DetailsOverviewRow

Returns
boolean

onBindViewHolder

void onBindViewHolder (Presenter.ViewHolder viewHolder, 
                Object item)

Bind logo View to drawable of DetailsOverviewRow and call notifyOnBindLogo(). The default implementation assumes the Logo View is an ImageView and change layout size to intrinsic size of ImageDrawable if DetailsOverviewLogoPresenter.ViewHolder.isSizeFromDrawableIntrinsic() is true.

Parameters
viewHolder Presenter.ViewHolder: ViewHolder to bind.

item Object: DetailsOverviewRow object to bind.

onCreateView

View onCreateView (ViewGroup parent)

Create a View for the Logo, default implementation loads from 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).

Parameters
parent ViewGroup: Parent view.

Returns
View View created for the logo.

onCreateViewHolder

Presenter.ViewHolder onCreateViewHolder (ViewGroup parent)

Creates a new View.

Parameters
parent ViewGroup

Returns
Presenter.ViewHolder

onUnbindViewHolder

void onUnbindViewHolder (Presenter.ViewHolder viewHolder)

Unbinds a 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.

Parameters
viewHolder Presenter.ViewHolder

setContext

void setContext (DetailsOverviewLogoPresenter.ViewHolder viewHolder, 
                FullWidthDetailsOverviewRowPresenter.ViewHolder parentViewHolder, 
                FullWidthDetailsOverviewRowPresenter parentPresenter)

Called from FullWidthDetailsOverviewRowPresenter to setup FullWidthDetailsOverviewRowPresenter and FullWidthDetailsOverviewRowPresenter.ViewHolder that hosts the logo.