Most visited

Recently visited

RowPresenter

public abstract class RowPresenter
extends Presenter

java.lang.Object
   ↳ android.support.v17.leanback.widget.Presenter
     ↳ android.support.v17.leanback.widget.RowPresenter
Known Direct Subclasses


Presenter中呈现对象的抽象Presenter ,该对象可以是子类Row或通用类。 当对象不是Row类时, getRow()返回null。

Customize UI widgets

When a subclass of RowPresenter adds UI widgets, it should subclass RowPresenter.ViewHolder and override createRowViewHolder(ViewGroup) and initializeRowViewHolder(ViewHolder). The subclass must use layout id "row_content" for the widget that will be aligned to the title of any HeadersFragment that may exist in the parent fragment. RowPresenter contains an optional and replaceable RowHeaderPresenter that renders the header. You can disable the default rendering or replace the Presenter with a new header presenter by calling setHeaderPresenter(RowHeaderPresenter).

UI events from fragments

RowPresenter receives calls from its parent (typically a Fragment) when:

Activated status

The activated status of a row is applied to the row view and it's children via setActivated(boolean). The activated status is typically used to control BaseCardView info region visibility. The row's activated status can be controlled by selected status and/or expanded status. Call setSyncActivatePolicy(int) and choose one of the four policies:

User events

RowPresenter provides OnItemViewSelectedListener and OnItemViewClickedListener. If a subclass wants to add its own View.OnFocusChangeListener or View.OnClickListener, it must do that in createRowViewHolder(ViewGroup) to be properly chained by the library. Adding View listeners after createRowViewHolder(ViewGroup) is undefined and may result in incorrect behavior by the library's listeners.

Selection animation

当用户滚动浏览行时,片段将启动动画并调用setSelectLevel(Presenter.ViewHolder, float) ,浮点值介于0和1之间。默认情况下,RowPresenter在行视图的顶部为未选中的视图绘制暗淡叠加层。 子类可以通过让isUsingDefaultSelectEffect()返回false并覆盖onSelectLevelChanged(ViewHolder)来应用不同的选择效果来覆盖此默认效果。

调用 setSelectEffectEnabled(boolean)以启用/禁用选择效果,这不仅会启用/禁用默认暗淡效果,而且子类也必须尊重此标志。

Summary

Nested classes

class RowPresenter.ViewHolder

RowRow

Constants

int SYNC_ACTIVATED_CUSTOM

不要将行视图激活状态与选定状态或扩展状态同步,应用程序将通过 setActivated(boolean)自行完成。

int SYNC_ACTIVATED_TO_EXPANDED

同步行视图的激活状态以展开行视图持有者的状态。

int SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED

当展开和选中都为真时,将行视图的激活状态设置为true。

int SYNC_ACTIVATED_TO_SELECTED

将行视图的激活状态同步到行视图保持器的选定状态。

Public constructors

RowPresenter()

构造一个RowPresenter。

Public methods

void freeze(RowPresenter.ViewHolder holder, boolean freeze)

冻结/解冻行,通常在转换开始/结束时使用。

final RowHeaderPresenter getHeaderPresenter()

返回用于呈现标题的Presenter;如果没有设置,则返回null。

final RowPresenter.ViewHolder getRowViewHolder(Presenter.ViewHolder holder)

返回 RowPresenter.ViewHolder从给定的RowPresenter ViewHolder。

final boolean getSelectEffectEnabled()

如果行选择效果已启用,则返回true。

final float getSelectLevel(Presenter.ViewHolder vh)

返回当前的选择级别。

final int getSyncActivatePolicy()

返回更新行视图激活状态的策略。

boolean isUsingDefaultSelectEffect()

如果此RowPresenter使用默认的调光效果,则返回true。

final void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item)

View绑定到一个项目。

final Presenter.ViewHolder onCreateViewHolder(ViewGroup parent)

创建一个新的 View

final void onUnbindViewHolder(Presenter.ViewHolder viewHolder)

从物品中 View绑定 View

final void onViewAttachedToWindow(Presenter.ViewHolder holder)

当此演示者创建的视图已附加到窗口时调用。

final void onViewDetachedFromWindow(Presenter.ViewHolder holder)

当此演示者创建的视图已从窗口分离时调用。

void setEntranceTransitionState(RowPresenter.ViewHolder holder, boolean afterEntrance)

更改视图的可见性。

final void setHeaderPresenter(RowHeaderPresenter headerPresenter)

设置用于渲染标题的Presenter。

final void setRowViewExpanded(Presenter.ViewHolder holder, boolean expanded)

设置行视图的展开状态。

final void setRowViewSelected(Presenter.ViewHolder holder, boolean selected)

设置“行”视图的选定状态。

final void setSelectEffectEnabled(boolean applyDimOnSelect)

启用或禁用行选择效果。

final void setSelectLevel(Presenter.ViewHolder vh, float level)

将当前选择级别设置为0(未选中)和1(选中)之间的值。

final void setSyncActivatePolicy(int syncActivatePolicy)

设置更新行视图激活状态的策略。

Protected methods

abstract RowPresenter.ViewHolder createRowViewHolder(ViewGroup parent)

调用为Row创建ViewHolder对象。

void dispatchItemSelectedListener(RowPresenter.ViewHolder vh, boolean selected)

这个方法只能从 onRowViewSelected(ViewHolder, boolean) onRowViewSelected调用。

void initializeRowViewHolder(RowPresenter.ViewHolder vh)

在为行创建 RowPresenter.ViewHolder之后调用。

boolean isClippingChildren()

如果行视图应该剪切它的子元素,则返回true。

void onBindRowViewHolder(RowPresenter.ViewHolder vh, Object item)

将给定的行对象绑定到给定的ViewHolder。

void onRowViewAttachedToWindow(RowPresenter.ViewHolder vh)

在行视图附加到窗口时调用。

void onRowViewDetachedFromWindow(RowPresenter.ViewHolder vh)

当行视图从窗口分离时调用。

void onRowViewExpanded(RowPresenter.ViewHolder vh, boolean expanded)

在行视图的展开状态更改时调用。

void onRowViewSelected(RowPresenter.ViewHolder vh, boolean selected)

当给定的行视图改变选择状态时调用。

void onSelectLevelChanged(RowPresenter.ViewHolder vh)

当选择级别改变时回调。

void onUnbindRowViewHolder(RowPresenter.ViewHolder vh)

取消绑定给定的ViewHolder。

Inherited methods

From class android.support.v17.leanback.widget.Presenter
From class java.lang.Object
From interface android.support.v17.leanback.widget.FacetProvider

Constants

SYNC_ACTIVATED_CUSTOM

int SYNC_ACTIVATED_CUSTOM

不要将行视图激活状态与选定状态或展开状态同步,应用程序将通过 setActivated(boolean)自行完成。

常量值:0(0x00000000)

SYNC_ACTIVATED_TO_EXPANDED

int SYNC_ACTIVATED_TO_EXPANDED

同步行视图的激活状态以展开行视图持有者的状态。

常数值:1(0x00000001)

SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED

int SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED

当展开和选中都为真时,将行视图的激活状态设置为true。

常量值:3(0x00000003)

SYNC_ACTIVATED_TO_SELECTED

int SYNC_ACTIVATED_TO_SELECTED

将行视图的激活状态同步到行视图保持器的选定状态。

常量值:2(0x00000002)

Public constructors

RowPresenter

RowPresenter ()

构造一个RowPresenter。

Public methods

freeze

void freeze (RowPresenter.ViewHolder holder, 
                boolean freeze)

冻结/解冻行,通常在转换开始/结束时使用。 该方法由该片段调用,它不应该直接由应用程序调用它。

Parameters
holder RowPresenter.ViewHolder
freeze boolean

getHeaderPresenter

RowHeaderPresenter getHeaderPresenter ()

返回用于呈现标题的Presenter;如果没有设置,则返回null。

Returns
RowHeaderPresenter

getRowViewHolder

RowPresenter.ViewHolder getRowViewHolder (Presenter.ViewHolder holder)

返回 RowPresenter.ViewHolder从给定的RowPresenter ViewHolder。

Parameters
holder Presenter.ViewHolder
Returns
RowPresenter.ViewHolder

getSelectEffectEnabled

boolean getSelectEffectEnabled ()

如果行选择效果已启用,则返回true。 该值不仅确定是否使用默认的暗淡实现,而且子类也必须尊重该标志。

Returns
boolean

getSelectLevel

float getSelectLevel (Presenter.ViewHolder vh)

返回当前的选择级别。 该值将介于0(未选中)和1(选中)之间。

Parameters
vh Presenter.ViewHolder
Returns
float

getSyncActivatePolicy

int getSyncActivatePolicy ()

返回更新行视图激活状态的策略。 可以是以下之一:

  • Default value SYNC_ACTIVATED_TO_EXPANDED
  • SYNC_ACTIVATED_TO_SELECTED
  • SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED
  • SYNC_ACTIVATED_CUSTOM

    Returns
    int
  • isUsingDefaultSelectEffect

    boolean isUsingDefaultSelectEffect ()

    如果此RowPresenter使用默认的调光效果,则返回true。 子类可能(很可能)返回false并覆盖onSelectLevelChanged(ViewHolder)

    Returns
    boolean

    onBindViewHolder

    void onBindViewHolder (Presenter.ViewHolder viewHolder, 
                    Object item)

    View绑定到一个项目。

    Parameters
    viewHolder Presenter.ViewHolder
    item Object

    onCreateViewHolder

    Presenter.ViewHolder onCreateViewHolder (ViewGroup parent)

    创建一个新的 View

    Parameters
    parent ViewGroup
    Returns
    Presenter.ViewHolder

    onUnbindViewHolder

    void onUnbindViewHolder (Presenter.ViewHolder viewHolder)

    从物品中View绑定View 任何昂贵的参考资料可能会在此处发布,并且任何未绑定到每个项目的字段都应在此处清除。

    Parameters
    viewHolder Presenter.ViewHolder

    onViewAttachedToWindow

    void onViewAttachedToWindow (Presenter.ViewHolder holder)

    当此演示者创建的视图已附加到窗口时调用。

    这可以用作视图即将被用户看到的合理信号。 如果适配器先前释放了onViewDetachedFromWindow(ViewHolder)任何资源,则应在此恢复这些资源。

    Parameters
    holder Presenter.ViewHolder: Holder of the view being attached

    onViewDetachedFromWindow

    void onViewDetachedFromWindow (Presenter.ViewHolder holder)

    当此演示者创建的视图已从窗口分离时调用。

    脱离窗口不一定是永久的条件; 演示者视图的使用者可以选择在屏幕不可见时缓存屏幕外的视图,并根据需要附加和分离视图。

    Any view property animations should be cancelled here or the view may fail to be recycled.

    Parameters
    holder Presenter.ViewHolder: Holder of the view being detached

    setEntranceTransitionState

    void setEntranceTransitionState (RowPresenter.ViewHolder holder, 
                    boolean afterEntrance)

    更改视图的可见性。 入场过渡将针对改变视野的观点进行。 一个子类可以重写并从调用super.setEntranceTransitionState()开始。 该方法由该片段调用,不应该由应用程序直接调用。

    Parameters
    holder RowPresenter.ViewHolder: The ViewHolder of the row.
    afterEntrance boolean: true if children of row participating in entrance transition should be set to visible, false otherwise.

    setHeaderPresenter

    void setHeaderPresenter (RowHeaderPresenter headerPresenter)

    设置用于渲染标题的Presenter。 可以为null以禁用标题呈现。 必须在创建任何行视图之前调用该方法。

    Parameters
    headerPresenter RowHeaderPresenter

    setRowViewExpanded

    void setRowViewExpanded (Presenter.ViewHolder holder, 
                    boolean expanded)

    设置行视图的展开状态。

    Parameters
    holder Presenter.ViewHolder: The Row ViewHolder to set expanded state on.
    expanded boolean: True if the Row is expanded, false otherwise.

    setRowViewSelected

    void setRowViewSelected (Presenter.ViewHolder holder, 
                    boolean selected)

    设置“行”视图的选定状态。

    Parameters
    holder Presenter.ViewHolder: The Row ViewHolder to set expanded state on.
    selected boolean: True if the Row is expanded, false otherwise.

    setSelectEffectEnabled

    void setSelectEffectEnabled (boolean applyDimOnSelect)

    启用或禁用行选择效果。 这不仅会影响默认的暗淡效果,而且子类也必须尊重这个标记。

    Parameters
    applyDimOnSelect boolean

    setSelectLevel

    void setSelectLevel (Presenter.ViewHolder vh, 
                    float level)

    将当前选择级别设置为0(未选中)和1(选中)之间的值。 子类可以覆盖onSelectLevelChanged(ViewHolder)以响应所选级别的更改。

    Parameters
    vh Presenter.ViewHolder
    level float

    setSyncActivatePolicy

    void setSyncActivatePolicy (int syncActivatePolicy)

    设置更新行视图激活状态的策略。 可以是以下之一:

  • Default value SYNC_ACTIVATED_TO_EXPANDED
  • SYNC_ACTIVATED_TO_SELECTED
  • SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED
  • SYNC_ACTIVATED_CUSTOM

    Parameters
    syncActivatePolicy int
  • Protected methods

    createRowViewHolder

    RowPresenter.ViewHolder createRowViewHolder (ViewGroup parent)

    调用为Row创建ViewHolder对象。 子类将重写此方法以返回不同的具体ViewHolder对象。

    Parameters
    parent ViewGroup: The parent View for the Row's view holder.
    Returns
    RowPresenter.ViewHolder A ViewHolder for the Row's View.

    dispatchItemSelectedListener

    void dispatchItemSelectedListener (RowPresenter.ViewHolder vh, 
                    boolean selected)

    此方法仅在onRowViewSelected(ViewHolder, boolean)onRowViewSelected(ViewHolder, boolean)调用。 默认行为是使用空项目参数为行选定的事件发信号。 具有子项目的RowPresenter的子类应该重写此方法并使用项目信息分派事件。

    Parameters
    vh RowPresenter.ViewHolder
    selected boolean

    initializeRowViewHolder

    void initializeRowViewHolder (RowPresenter.ViewHolder vh)

    在为行创建RowPresenter.ViewHolder之后调用。 子类可以重写此方法,并通过调用super.initializeRowViewHolder(ViewHolder)开始。

    Parameters
    vh RowPresenter.ViewHolder: The ViewHolder to initialize for the Row.

    isClippingChildren

    boolean isClippingChildren ()

    如果行视图应该剪切它的子元素,则返回true。 clipChildren标志在initializeRowViewHolder(ViewHolder)视图中initializeRowViewHolder(ViewHolder) 请注意,幻灯片切换或爆炸转换需要关闭clipChildren。 默认值为false。

    Returns
    boolean

    onBindRowViewHolder

    void onBindRowViewHolder (RowPresenter.ViewHolder vh, 
                    Object item)

    将给定的行对象绑定到给定的ViewHolder。 派生类RowPresenter覆盖onBindRowViewHolder(ViewHolder, Object)必须通过超类的这个方法的实现来调用。

    Parameters
    vh RowPresenter.ViewHolder
    item Object

    onRowViewAttachedToWindow

    void onRowViewAttachedToWindow (RowPresenter.ViewHolder vh)

    在行视图附加到窗口时调用。

    Parameters
    vh RowPresenter.ViewHolder

    onRowViewDetachedFromWindow

    void onRowViewDetachedFromWindow (RowPresenter.ViewHolder vh)

    当行视图从窗口分离时调用。

    Parameters
    vh RowPresenter.ViewHolder

    onRowViewExpanded

    void onRowViewExpanded (RowPresenter.ViewHolder vh, 
                    boolean expanded)

    在行视图的展开状态更改时调用。 子类可以重写此方法以响应行的扩展状态更改。 默认实现将隐藏/显示标题视图。 子类可以对行视图进行可视化更改,但不能在“行”视图上创建动画。

    Parameters
    vh RowPresenter.ViewHolder
    expanded boolean

    onRowViewSelected

    void onRowViewSelected (RowPresenter.ViewHolder vh, 
                    boolean selected)

    当给定的行视图改变选择状态时调用。 子类可以覆盖这个以响应行的选定状态更改。 子类可以对行视图进行视觉更改,但不能在“行”视图上创建动画。

    Parameters
    vh RowPresenter.ViewHolder
    selected boolean

    onSelectLevelChanged

    void onSelectLevelChanged (RowPresenter.ViewHolder vh)

    当选择级别改变时回调。 getSelectEffectEnabled()为真时,默认实现将选择级别应用于setSelectLevel(RowHeaderPresenter.ViewHolder, float) 子类可以重写此函数并实现不同的选择效果。 在这种情况下,方法isUsingDefaultSelectEffect()也应该被覆盖以禁用默认的调光效果。

    Parameters
    vh RowPresenter.ViewHolder

    onUnbindRowViewHolder

    void onUnbindRowViewHolder (RowPresenter.ViewHolder vh)

    取消绑定给定的ViewHolder。 派生类RowPresenter覆盖onUnbindRowViewHolder(ViewHolder)必须通过超类的此方法的实现进行调用。

    Parameters
    vh RowPresenter.ViewHolder

    Hooray!