public class UIViewOperationQueue
extends java.lang.Object
NativeViewHierarchyManager or on
AnimationRegistry. It expose similar methods as mentioned classes but instead of
executing commands immediately it enqueues those operations in a queue that is then flushed from
UIManagerModule once JS batch of ui operations is finished. This is to make sure that we
execute all the JS operation coming from a single batch a single loop of the main (UI) android
looper.
TODO(7135923): Pooling of operation objects
TODO(5694019): Consider a better data structure for operations queue to save on allocations| Modifier and Type | Method and Description |
|---|---|
void |
enqueueAddAnimation(int reactTag,
int animationID,
Callback onSuccess) |
void |
enqueueClearJSResponder() |
void |
enqueueCreateView(int rootViewTagForContext,
int viewReactTag,
java.lang.String viewClassName,
CatalystStylesDiffMap initialProps) |
void |
enqueueDispatchCommand(int reactTag,
int commandId,
ReadableArray commandArgs) |
void |
enqueueFindTargetForTouch(int reactTag,
float targetX,
float targetY,
Callback callback) |
void |
enqueueManageChildren(int reactTag,
int[] indicesToRemove,
com.facebook.react.uimanager.ViewAtIndex[] viewsToAdd,
int[] tagsToDelete) |
void |
enqueueMeasure(int reactTag,
Callback callback) |
void |
enqueueRegisterAnimation(Animation animation) |
void |
enqueueRemoveAnimation(int animationID) |
void |
enqueueRemoveRootView(int rootViewTag) |
void |
enqueueSendAccessibilityEvent(int tag,
int eventType) |
void |
enqueueSetJSResponder(int reactTag,
boolean blockNativeResponder) |
void |
enqueueShowPopupMenu(int reactTag,
ReadableArray items,
Callback error,
Callback success) |
void |
enqueueUpdateExtraData(int reactTag,
java.lang.Object extraData) |
void |
enqueueUpdateLayout(int parentTag,
int reactTag,
int x,
int y,
int width,
int height) |
void |
enqueueUpdateProperties(int reactTag,
java.lang.String className,
CatalystStylesDiffMap props) |
boolean |
isEmpty() |
public boolean isEmpty()
public void enqueueRemoveRootView(int rootViewTag)
public void enqueueSetJSResponder(int reactTag,
boolean blockNativeResponder)
public void enqueueClearJSResponder()
public void enqueueDispatchCommand(int reactTag,
int commandId,
ReadableArray commandArgs)
public void enqueueUpdateExtraData(int reactTag,
java.lang.Object extraData)
public void enqueueShowPopupMenu(int reactTag,
ReadableArray items,
Callback error,
Callback success)
public void enqueueCreateView(int rootViewTagForContext,
int viewReactTag,
java.lang.String viewClassName,
@Nullable
CatalystStylesDiffMap initialProps)
public void enqueueUpdateProperties(int reactTag,
java.lang.String className,
CatalystStylesDiffMap props)
public void enqueueUpdateLayout(int parentTag,
int reactTag,
int x,
int y,
int width,
int height)
public void enqueueManageChildren(int reactTag,
@Nullable
int[] indicesToRemove,
@Nullable
com.facebook.react.uimanager.ViewAtIndex[] viewsToAdd,
@Nullable
int[] tagsToDelete)
public void enqueueRegisterAnimation(Animation animation)
public void enqueueAddAnimation(int reactTag,
int animationID,
Callback onSuccess)
public void enqueueRemoveAnimation(int animationID)
public void enqueueMeasure(int reactTag,
Callback callback)
public void enqueueFindTargetForTouch(int reactTag,
float targetX,
float targetY,
Callback callback)
public void enqueueSendAccessibilityEvent(int tag,
int eventType)