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。
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)
.
setRowViewSelected(Presenter.ViewHolder, boolean)
. The event is triggered immediately when there is a row selection change before the selection animation is started. Selected status may control activated status of the row (see "Activated status" below). Subclasses of RowPresenter may override onRowViewSelected(ViewHolder, boolean)
. setRowViewExpanded(Presenter.ViewHolder, boolean)
when BrowseFragment hides fast lane on the left. The event is triggered immediately before the expand animation is started. Row title is shown when row is expanded. Expanded status may control activated status of the row (see "Activated status" below). Subclasses of RowPresenter may override onRowViewExpanded(ViewHolder, boolean)
. 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:
SYNC_ACTIVATED_TO_EXPANDED
Activated status is synced with row expanded statusSYNC_ACTIVATED_TO_SELECTED
Activated status is synced with row selected statusSYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED
Activated status is set to true when both expanded and selected status are trueSYNC_ACTIVATED_CUSTOM
Activated status is not controlled by selected status or expanded status, application can control activated status by its own. Application should call setActivated(boolean)
to change activated status of row view. 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.
当用户滚动浏览行时,片段将启动动画并调用setSelectLevel(Presenter.ViewHolder, float)
,浮点值介于0和1之间。默认情况下,RowPresenter在行视图的顶部为未选中的视图绘制暗淡叠加层。 子类可以通过让isUsingDefaultSelectEffect()
返回false并覆盖onSelectLevelChanged(ViewHolder)
来应用不同的选择效果来覆盖此默认效果。
调用 setSelectEffectEnabled(boolean)
以启用/禁用选择效果,这不仅会启用/禁用默认暗淡效果,而且子类也必须尊重此标志。
Nested classes |
|
---|---|
class |
RowPresenter.ViewHolder |
Constants |
|
---|---|
int |
SYNC_ACTIVATED_CUSTOM 不要将行视图激活状态与选定状态或扩展状态同步,应用程序将通过 |
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) 返回 |
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) 将 |
final Presenter.ViewHolder |
onCreateViewHolder(ViewGroup parent) 创建一个新的 |
final void |
onUnbindViewHolder(Presenter.ViewHolder viewHolder) |
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) 这个方法只能从 |
void |
initializeRowViewHolder(RowPresenter.ViewHolder vh) 在为行创建 |
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
|
int SYNC_ACTIVATED_CUSTOM
不要将行视图激活状态与选定状态或展开状态同步,应用程序将通过 setActivated(boolean)
自行完成。
常量值:0(0x00000000)
int SYNC_ACTIVATED_TO_EXPANDED
同步行视图的激活状态以展开行视图持有者的状态。
常数值:1(0x00000001)
int SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED
当展开和选中都为真时,将行视图的激活状态设置为true。
常量值:3(0x00000003)
int SYNC_ACTIVATED_TO_SELECTED
将行视图的激活状态同步到行视图保持器的选定状态。
常量值:2(0x00000002)
RowPresenter ()
构造一个RowPresenter。
void freeze (RowPresenter.ViewHolder holder, boolean freeze)
冻结/解冻行,通常在转换开始/结束时使用。 该方法由该片段调用,它不应该直接由应用程序调用它。
Parameters | |
---|---|
holder |
RowPresenter.ViewHolder
|
freeze |
boolean
|
RowHeaderPresenter getHeaderPresenter ()
返回用于呈现标题的Presenter;如果没有设置,则返回null。
Returns | |
---|---|
RowHeaderPresenter |
RowPresenter.ViewHolder getRowViewHolder (Presenter.ViewHolder holder)
返回 RowPresenter.ViewHolder
从给定的RowPresenter ViewHolder。
Parameters | |
---|---|
holder |
Presenter.ViewHolder
|
Returns | |
---|---|
RowPresenter.ViewHolder |
boolean getSelectEffectEnabled ()
如果行选择效果已启用,则返回true。 该值不仅确定是否使用默认的暗淡实现,而且子类也必须尊重该标志。
Returns | |
---|---|
boolean |
float getSelectLevel (Presenter.ViewHolder vh)
返回当前的选择级别。 该值将介于0(未选中)和1(选中)之间。
Parameters | |
---|---|
vh |
Presenter.ViewHolder
|
Returns | |
---|---|
float |
int getSyncActivatePolicy ()
返回更新行视图激活状态的策略。 可以是以下之一:
SYNC_ACTIVATED_TO_EXPANDED
SYNC_ACTIVATED_TO_SELECTED
SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED
SYNC_ACTIVATED_CUSTOM
Returns | |
---|---|
int |
boolean isUsingDefaultSelectEffect ()
如果此RowPresenter使用默认的调光效果,则返回true。 子类可能(很可能)返回false并覆盖onSelectLevelChanged(ViewHolder)
。
Returns | |
---|---|
boolean |
void onBindViewHolder (Presenter.ViewHolder viewHolder, Object item)
将 View
绑定到一个项目。
Parameters | |
---|---|
viewHolder |
Presenter.ViewHolder
|
item |
Object
|
Presenter.ViewHolder onCreateViewHolder (ViewGroup parent)
创建一个新的 View
。
Parameters | |
---|---|
parent |
ViewGroup
|
Returns | |
---|---|
Presenter.ViewHolder |
void onUnbindViewHolder (Presenter.ViewHolder viewHolder)
从物品中View
绑定View
。 任何昂贵的参考资料可能会在此处发布,并且任何未绑定到每个项目的字段都应在此处清除。
Parameters | |
---|---|
viewHolder |
Presenter.ViewHolder
|
void onViewAttachedToWindow (Presenter.ViewHolder holder)
当此演示者创建的视图已附加到窗口时调用。
这可以用作视图即将被用户看到的合理信号。 如果适配器先前释放了onViewDetachedFromWindow(ViewHolder)
任何资源,则应在此恢复这些资源。
Parameters | |
---|---|
holder |
Presenter.ViewHolder : Holder of the view being attached |
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 |
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. |
void setHeaderPresenter (RowHeaderPresenter headerPresenter)
设置用于渲染标题的Presenter。 可以为null以禁用标题呈现。 必须在创建任何行视图之前调用该方法。
Parameters | |
---|---|
headerPresenter |
RowHeaderPresenter
|
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. |
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. |
void setSelectEffectEnabled (boolean applyDimOnSelect)
启用或禁用行选择效果。 这不仅会影响默认的暗淡效果,而且子类也必须尊重这个标记。
Parameters | |
---|---|
applyDimOnSelect |
boolean
|
void setSelectLevel (Presenter.ViewHolder vh, float level)
将当前选择级别设置为0(未选中)和1(选中)之间的值。 子类可以覆盖onSelectLevelChanged(ViewHolder)
以响应所选级别的更改。
Parameters | |
---|---|
vh |
Presenter.ViewHolder
|
level |
float
|
void setSyncActivatePolicy (int syncActivatePolicy)
设置更新行视图激活状态的策略。 可以是以下之一:
SYNC_ACTIVATED_TO_EXPANDED
SYNC_ACTIVATED_TO_SELECTED
SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED
SYNC_ACTIVATED_CUSTOM
Parameters | |
---|---|
syncActivatePolicy |
int
|
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. |
void dispatchItemSelectedListener (RowPresenter.ViewHolder vh, boolean selected)
此方法仅在onRowViewSelected(ViewHolder, boolean)
从onRowViewSelected(ViewHolder, boolean)
调用。 默认行为是使用空项目参数为行选定的事件发信号。 具有子项目的RowPresenter的子类应该重写此方法并使用项目信息分派事件。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|
selected |
boolean
|
void initializeRowViewHolder (RowPresenter.ViewHolder vh)
在为行创建RowPresenter.ViewHolder
之后调用。 子类可以重写此方法,并通过调用super.initializeRowViewHolder(ViewHolder)开始。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder : The ViewHolder to initialize for the Row. |
boolean isClippingChildren ()
如果行视图应该剪切它的子元素,则返回true。 clipChildren标志在initializeRowViewHolder(ViewHolder)
视图中initializeRowViewHolder(ViewHolder)
。 请注意,幻灯片切换或爆炸转换需要关闭clipChildren。 默认值为false。
Returns | |
---|---|
boolean |
void onBindRowViewHolder (RowPresenter.ViewHolder vh, Object item)
将给定的行对象绑定到给定的ViewHolder。 派生类RowPresenter
覆盖onBindRowViewHolder(ViewHolder, Object)
必须通过超类的这个方法的实现来调用。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|
item |
Object
|
void onRowViewAttachedToWindow (RowPresenter.ViewHolder vh)
在行视图附加到窗口时调用。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|
void onRowViewDetachedFromWindow (RowPresenter.ViewHolder vh)
当行视图从窗口分离时调用。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|
void onRowViewExpanded (RowPresenter.ViewHolder vh, boolean expanded)
在行视图的展开状态更改时调用。 子类可以重写此方法以响应行的扩展状态更改。 默认实现将隐藏/显示标题视图。 子类可以对行视图进行可视化更改,但不能在“行”视图上创建动画。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|
expanded |
boolean
|
void onRowViewSelected (RowPresenter.ViewHolder vh, boolean selected)
当给定的行视图改变选择状态时调用。 子类可以覆盖这个以响应行的选定状态更改。 子类可以对行视图进行视觉更改,但不能在“行”视图上创建动画。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|
selected |
boolean
|
void onSelectLevelChanged (RowPresenter.ViewHolder vh)
当选择级别改变时回调。 当getSelectEffectEnabled()
为真时,默认实现将选择级别应用于setSelectLevel(RowHeaderPresenter.ViewHolder, float)
。 子类可以重写此函数并实现不同的选择效果。 在这种情况下,方法isUsingDefaultSelectEffect()
也应该被覆盖以禁用默认的调光效果。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|
void onUnbindRowViewHolder (RowPresenter.ViewHolder vh)
取消绑定给定的ViewHolder。 派生类RowPresenter
覆盖onUnbindRowViewHolder(ViewHolder)
必须通过超类的此方法的实现进行调用。
Parameters | |
---|---|
vh |
RowPresenter.ViewHolder
|