public final class Recycler extends Component
RecyclerView
.com.facebook.litho.widget.RecyclerSpec
Modifier and Type | Class and Description |
---|---|
static class |
Recycler.Builder |
Component.ContainerBuilder<T extends Component.ContainerBuilder<T>>
ComponentLifecycle.MountType, ComponentLifecycle.RenderData, ComponentLifecycle.StateContainer, ComponentLifecycle.StateUpdate, ComponentLifecycle.TransitionContainer
mSplitChildrenLayoutInThreadPool
Modifier and Type | Method and Description |
---|---|
boolean |
callsShouldUpdateOnMount() |
protected boolean |
canMeasure()
Whether this
ComponentLifecycle is able to measure itself according
to specific size constraints. |
boolean |
canMountIncrementally()
Whether this
ComponentLifecycle mounts views that contain component-based
content that can be incrementally mounted e.g. |
protected boolean |
canPreallocate() |
protected void |
copyInterStageImpl(Component component) |
static Recycler.Builder |
create(ComponentContext context) |
static Recycler.Builder |
create(ComponentContext context,
int defStyleAttr,
int defStyleRes) |
protected void |
createInitialState(ComponentContext c) |
Object |
dispatchOnEvent(EventHandler eventHandler,
Object eventState) |
ComponentLifecycle.MountType |
getMountType()
This indicates the type of the
Object that will be returned by ComponentLifecycle.mount(com.facebook.litho.ComponentContext, java.lang.Object) . |
static EventHandler |
getPTRRefreshEventHandler(ComponentContext context) |
protected ComponentLifecycle.StateContainer |
getStateContainer() |
protected boolean |
hasState() |
boolean |
isEquivalentTo(Component other)
Compares this component to a different one to check if they are the same
This is used to be able to skip rendering a component again.
|
boolean |
isPureRender() |
Recycler |
makeShallowCopy() |
protected void |
onBind(ComponentContext context,
Object sectionsRecycler) |
protected void |
onBoundsDefined(ComponentContext context,
ComponentLayout layout)
Called after the layout calculation is finished and the given
ComponentLayout has its
bounds defined. |
protected Object |
onCreateMountContent(Context c)
Create the object that will be mounted in the
LithoView . |
protected void |
onMeasure(ComponentContext c,
ComponentLayout layout,
int widthSpec,
int heightSpec,
Size measureOutput) |
protected void |
onMount(ComponentContext c,
Object sectionsRecycler)
Deploy all UI elements representing the final bounds defined in the given
ComponentLayout . |
protected void |
onPrepare(ComponentContext c) |
static EventHandler<ReMeasureEvent> |
onRemeasure(ComponentContext c) |
protected void |
onUnbind(ComponentContext context,
Object sectionsRecycler) |
protected void |
onUnmount(ComponentContext context,
Object sectionsRecycler)
Unload UI elements associated with this component.
|
protected static void |
onUpdateMeasure(ComponentContext c,
int measureVer) |
protected static void |
onUpdateMeasureAsync(ComponentContext c,
int measureVer) |
protected static void |
onUpdateMeasureSync(ComponentContext c,
int measureVer) |
protected int |
poolSize() |
protected boolean |
shouldAlwaysRemeasure() |
protected boolean |
shouldUpdate(Component _prevAbstractImpl,
Component _nextAbstractImpl)
Whether the component needs updating.
|
protected void |
transferState(ComponentContext context,
ComponentLifecycle.StateContainer _prevStateContainer)
|
canResolve, clearCachedLayout, getEventDispatcher, getId, getOrCreateCommonProps, getScopedContext, getSimpleName, measure, recordEventTrigger, registerWorkingRange, releaseCachedLayout, setScopedContext, updateInternalChildState, updateInternalChildState, willRender
acceptTriggerEvent, acquireDiff, acquireOutput, applyPreviousRenderData, createMountContent, dispatchErrorEvent, dispatchErrorEvent, dispatchOnEnteredRange, dispatchOnExitedRange, getEventTrigger, getExtraAccessibilityNodeAt, getExtraAccessibilityNodesCount, getTreePropsForChildren, implementsAccessibility, implementsExtraAccessibilityNodes, isMountSizeDependent, needsPreviousRenderData, newEventHandler, newEventHandler, newEventTrigger, onCreateLayout, onCreateLayoutWithSizeSpec, onCreateMountContentPool, onCreateTransition, onError, onLoadStyle, onMeasureBaseline, onPopulateAccessibilityNode, onPopulateExtraAccessibilityNode, populateTreeProps, recordRenderData, releaseDiff, releaseOutput, resolve, shouldUseDisplayList
protected ComponentLifecycle.StateContainer getStateContainer()
getStateContainer
in class Component
public boolean isEquivalentTo(Component other)
Component
Object.equals(Object)
so we can optimize the code better over time since we don't have
to adhere to the contract required for a equals method.isEquivalentTo
in class Component
other
- the component to compare toprotected void copyInterStageImpl(Component component)
copyInterStageImpl
in class Component
public Recycler makeShallowCopy()
makeShallowCopy
in class Component
protected void onMeasure(ComponentContext c, ComponentLayout layout, int widthSpec, int heightSpec, Size measureOutput)
onMeasure
in class ComponentLifecycle
protected boolean canMeasure()
ComponentLifecycle
ComponentLifecycle
is able to measure itself according
to specific size constraints.canMeasure
in class ComponentLifecycle
protected void onBoundsDefined(ComponentContext context, ComponentLayout layout)
ComponentLifecycle
ComponentLayout
has its
bounds defined. You can use ComponentLayout.getX()
, ComponentLayout.getY()
,
ComponentLayout.getWidth()
, and ComponentLayout.getHeight()
to get the size and
position of the component in the layout tree.onBoundsDefined
in class ComponentLifecycle
context
- The Context
used by this component.layout
- The ComponentLayout
with defined position and size.protected Object onCreateMountContent(Context c)
ComponentLifecycle
LithoView
.onCreateMountContent
in class ComponentLifecycle
c
- The Context
to be used to create the content.protected void onPrepare(ComponentContext c)
onPrepare
in class ComponentLifecycle
protected void onMount(ComponentContext c, Object sectionsRecycler)
ComponentLifecycle
ComponentLayout
. Return either a Drawable
or a View
or null
to be
mounted.onMount
in class ComponentLifecycle
c
- The ComponentContext
to mount the component into.protected void onBind(ComponentContext context, Object sectionsRecycler)
onBind
in class ComponentLifecycle
protected void onUnbind(ComponentContext context, Object sectionsRecycler)
onUnbind
in class ComponentLifecycle
protected void onUnmount(ComponentContext context, Object sectionsRecycler)
ComponentLifecycle
onUnmount
in class ComponentLifecycle
context
- The Context
for this mount operation.sectionsRecycler
- The Drawable
or View
mounted by this component.protected boolean shouldUpdate(Component _prevAbstractImpl, Component _nextAbstractImpl)
ComponentLifecycle
For layout components, the framework will verify that none of the children of the component need updating, and that both components have the same number of children. Therefore this method just needs to determine any changes to the top-level component that would cause it to need to be updated (for example, a click handler was added).
For mount specs, the framework does nothing extra and this method alone determines whether the component is updated or not.
shouldUpdate
in class ComponentLifecycle
_prevAbstractImpl
- the previous component to compare against._nextAbstractImpl
- the component that is now in use.protected void createInitialState(ComponentContext c)
createInitialState
in class ComponentLifecycle
protected boolean shouldAlwaysRemeasure()
shouldAlwaysRemeasure
in class ComponentLifecycle
public ComponentLifecycle.MountType getMountType()
ComponentLifecycle
Object
that will be returned by ComponentLifecycle.mount(com.facebook.litho.ComponentContext, java.lang.Object)
.getMountType
in class ComponentLifecycle
ComponentLifecycle.MountType
protected int poolSize()
poolSize
in class ComponentLifecycle
protected boolean canPreallocate()
canPreallocate
in class ComponentLifecycle
public boolean canMountIncrementally()
ComponentLifecycle
ComponentLifecycle
mounts views that contain component-based
content that can be incrementally mounted e.g. if the mounted view has a
LithoView with incremental mount enabled.canMountIncrementally
in class ComponentLifecycle
public boolean callsShouldUpdateOnMount()
callsShouldUpdateOnMount
in class ComponentLifecycle
public boolean isPureRender()
isPureRender
in class ComponentLifecycle
public static EventHandler getPTRRefreshEventHandler(ComponentContext context)
public static EventHandler<ReMeasureEvent> onRemeasure(ComponentContext c)
public Object dispatchOnEvent(EventHandler eventHandler, Object eventState)
dispatchOnEvent
in interface EventDispatcher
dispatchOnEvent
in class ComponentLifecycle
protected boolean hasState()
hasState
in class ComponentLifecycle
protected void transferState(ComponentContext context, ComponentLifecycle.StateContainer _prevStateContainer)
ComponentLifecycle
transferState
in class ComponentLifecycle
protected static void onUpdateMeasure(ComponentContext c, int measureVer)
protected static void onUpdateMeasureAsync(ComponentContext c, int measureVer)
protected static void onUpdateMeasureSync(ComponentContext c, int measureVer)
public static Recycler.Builder create(ComponentContext context)
public static Recycler.Builder create(ComponentContext context, int defStyleAttr, int defStyleRes)