SimpleViewManager

Common base class for most of the ViewManagers. It provides support for most common properties through extending BaseViewManager. It also reduces boilerplate by specifying the type of shadow node to be ReactShadowNode and providing default, empty implementation for some of the methods of ViewManager interface.

Parameters

the view handled by this manager

Inheritors

Constructors

Link copied to clipboard
constructor()

Functions

Link copied to clipboard
open override fun canOverrideExistingModule(): Boolean

Return true if you intend to override some other native module that was registered e.g. as part of a different package (such as the core one). Trying to override without returning true from this method is considered an error and will throw an exception during initialization. By default all modules return false.

Link copied to clipboard

This method should return a subclass of ReactShadowNode which will be then used for measuring position and size of the view. In most of the cases this should just return an instance of ReactShadowNode

Link copied to clipboard
open fun createView(reactTag: Int, @NonNull reactContext: ThemedReactContext, @Nullable props: ReactStylesDiffMap?, @Nullable stateWrapper: StateWrapper?, jsResponderHandler: JSResponderHandler): T

Creates a view with knowledge of props and state.

Link copied to clipboard
open fun experimental_prefetchResource(reactContext: ReactContext, surfaceId: Int, reactTag: Int, params: MapBuffer)

THIS PREFETCH METHOD IS EXPERIMENTAL, DO NOT USE IT FOR PRODUCTION CODE, MOST LIKELY IT WILL CHANGE OR BE REMOVED IN THE FUTURE.

Link copied to clipboard

Subclasses of ViewManager that expect to receive commands through dispatchViewManagerCommand should override this method returning the map between names of the commands and IDs that are then used in receiveCommand method whenever the command is dispatched for this particular ViewManager.

Link copied to clipboard

Returns a map of config data passed to JS that defines eligible events that can be placed on native views. This should return bubbling directly-dispatched event types and specify what names should be used to subscribe to either form (bubbling/capturing).

Returns a map of config data passed to JS that defines eligible events that can be placed on native views. This should return non-bubbling directly-dispatched event types.

Link copied to clipboard

Returns a map of view-specific constants that are injected to JavaScript. These constants are made accessible via UIManager..Constants.

Link copied to clipboard
abstract override fun getName(): String
Link copied to clipboard

Returns a , representing the native props of the view manager. The Map contains the names (key) and types (value) of the ViewManager's props.

Link copied to clipboard

This method should return Class instance that represent type of shadow node that this manager will return from createShadowNodeInstance.

Link copied to clipboard
open override fun initialize()

This method is called after ReactApplicationContext has been created.

Link copied to clipboard
open override fun invalidate()

Allow NativeModule to clean up. Called before React Native instance is destroyed.

Link copied to clipboard
open fun measure(context: Context, localData: ReadableMap, props: ReadableMap, state: ReadableMap, width: Float, widthMode: YogaMeasureMode, height: Float, heightMode: YogaMeasureMode, @Nullable attachmentsPositions: FloatArray?): Long

Subclasses can override this method to implement custom measure functions for the ViewManager

open fun measure(context: Context, localData: MapBuffer, props: MapBuffer, @Nullable state: MapBuffer?, width: Float, widthMode: YogaMeasureMode, height: Float, heightMode: YogaMeasureMode, @Nullable attachmentsPositions: FloatArray?): Long

THIS MEASURE METHOD IS EXPERIMENTAL, MOST LIKELY YOU ARE LOOKING TO USE THE OTHER OVERLOAD INSTEAD: measure

Link copied to clipboard

Allow NativeModule to clean up. Called before {CatalystInstance#onHostDestroy}

Link copied to clipboard
open fun onDropViewInstance(@NonNull view: T)

Called when view is detached from view hierarchy and allows for some additional cleanup by the ViewManager subclass.

Link copied to clipboard
open override fun onLayoutChange(v: View, left: Int, top: Int, right: Int, bottom: Int, oldLeft: Int, oldTop: Int, oldRight: Int, oldBottom: Int)
Link copied to clipboard
open fun onSurfaceStopped(surfaceId: Int)

Lifecycle method: called when a surface is stopped. Currently only used for View Recycling cleanup. There is no corresponding startSurface lifecycle event for ViewManagers because we currently only need this for recycling cleanup. Only called in Fabric.

Link copied to clipboard
open fun receiveCommand(@NonNull root: T, commandId: Int, @Nullable args: ReadableArray?)

Subclasses may use this method to receive events/commands directly from JS through the . Good example of such a command would be scrollTo request with coordinates for a ScrollView instance.

open fun receiveCommand(@NonNull root: T, commandId: String, @Nullable args: ReadableArray?)

Subclasses may use this method to receive events/commands directly from JS through the . Good example of such a command would be scrollTo request with coordinates for a ReactScrollView instance.

Link copied to clipboard
open fun setAccessibilityActions(view: T, accessibilityActions: ReadableArray)
Link copied to clipboard
open fun setAccessibilityCollection(@NonNull view: T, @Nullable accessibilityCollection: ReadableMap?)
Link copied to clipboard
open fun setAccessibilityCollectionItem(@NonNull view: T, @Nullable accessibilityCollectionItem: ReadableMap?)
Link copied to clipboard
open fun setAccessibilityHint(@NonNull view: T, @Nullable accessibilityHint: String?)
Link copied to clipboard
open fun setAccessibilityLabel(@NonNull view: T, @Nullable accessibilityLabel: String?)
Link copied to clipboard
open fun setAccessibilityLabelledBy(@NonNull view: T, @Nullable nativeId: Dynamic?)
Link copied to clipboard
open fun setAccessibilityLiveRegion(@NonNull view: T, @Nullable liveRegion: String?)
Link copied to clipboard
open fun setAccessibilityOrder(@NonNull view: T, @Nullable nativeIds: ReadableArray?)
Link copied to clipboard
open fun setAccessibilityRole(@NonNull view: T, @Nullable accessibilityRole: String?)
Link copied to clipboard
open fun setAccessibilityValue(view: T, accessibilityValue: ReadableMap)
Link copied to clipboard
open fun setBackgroundColor(@NonNull view: T, @ColorInt backgroundColor: Int)
Link copied to clipboard
open fun setBorderBottomLeftRadius(view: T, borderRadius: Float)
Link copied to clipboard
open fun setBorderBottomRightRadius(view: T, borderRadius: Float)
Link copied to clipboard
open fun setBorderRadius(view: T, borderRadius: Float)
Link copied to clipboard
open fun setBorderTopLeftRadius(view: T, borderRadius: Float)
Link copied to clipboard
open fun setBorderTopRightRadius(view: T, borderRadius: Float)
Link copied to clipboard
open fun setBoxShadow(view: T, @Nullable shadows: ReadableArray?)
Link copied to clipboard
open fun setClick(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setClickCapture(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setElevation(@NonNull view: T, elevation: Float)
Link copied to clipboard
open fun setFilter(@NonNull view: T, @Nullable filter: ReadableArray?)
Link copied to clipboard
open fun setImportantForAccessibility(@NonNull view: T, @Nullable importantForAccessibility: String?)
Link copied to clipboard
open fun setMixBlendMode(@NonNull view: T, @Nullable mixBlendMode: String?)
Link copied to clipboard
open fun setMoveShouldSetResponder(@NonNull view: T, value: Boolean)
Link copied to clipboard
Link copied to clipboard
open fun setNativeId(@NonNull view: T, @Nullable nativeId: String?)
Link copied to clipboard
open fun setOpacity(@NonNull view: T, opacity: Float)
Link copied to clipboard
open fun setOutlineColor(view: T, @Nullable color: Int?)
Link copied to clipboard
open fun setOutlineOffset(view: T, offset: Float)
Link copied to clipboard
open fun setOutlineStyle(view: T, @Nullable outlineStyle: String?)
Link copied to clipboard
open fun setOutlineWidth(view: T, width: Float)
Link copied to clipboard
open fun setPadding(view: T, left: Int, top: Int, right: Int, bottom: Int)

Subclasses can override this method to set padding for the given View in Fabric. Since not all components support setting padding, the default implementation of this method does nothing.

Link copied to clipboard
open fun setPointerEnter(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerEnterCapture(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerLeave(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerLeaveCapture(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerMove(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerMoveCapture(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerOut(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerOutCapture(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerOver(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setPointerOverCapture(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setRenderToHardwareTexture(@NonNull view: T, useHWTexture: Boolean)
Link copied to clipboard
open fun setResponderEnd(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setResponderGrant(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setResponderMove(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setResponderReject(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setResponderRelease(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setResponderStart(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setResponderTerminate(@NonNull view: T, value: Boolean)
Link copied to clipboard
Link copied to clipboard
open fun setRole(@NonNull view: T, @Nullable role: String?)
Link copied to clipboard
open fun setRotation(@NonNull view: T, rotation: Float)
Link copied to clipboard
open fun setScaleX(@NonNull view: T, scaleX: Float)
Link copied to clipboard
open fun setScaleY(@NonNull view: T, scaleY: Float)
Link copied to clipboard
open fun setShadowColor(@NonNull view: T, shadowColor: Int)
Link copied to clipboard
Link copied to clipboard
open fun setStartShouldSetResponder(@NonNull view: T, value: Boolean)
Link copied to clipboard
Link copied to clipboard
open fun setTestId(@NonNull view: T, @Nullable testId: String?)
Link copied to clipboard
open fun setTouchCancel(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setTouchEnd(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setTouchMove(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setTouchStart(@NonNull view: T, value: Boolean)
Link copied to clipboard
open fun setTransform(@NonNull view: T, @Nullable matrix: ReadableArray?)
Link copied to clipboard
open fun setTransformOrigin(@NonNull view: T, @Nullable transformOrigin: ReadableArray?)
Link copied to clipboard
open fun setTranslateX(@NonNull view: T, translateX: Float)
Link copied to clipboard
open fun setTranslateY(@NonNull view: T, translateY: Float)
Link copied to clipboard
open fun setViewState(@NonNull view: T, @Nullable accessibilityState: ReadableMap?)
Link copied to clipboard
open fun setZIndex(@NonNull view: T, zIndex: Float)
Link copied to clipboard
open override fun updateExtraData(root: T, extraData: Any?)

Subclasses can implement this method to receive an optional extra data enqueued from the corresponding instance of ReactShadowNode in onCollectExtraUpdates.

Link copied to clipboard
open fun updateProperties(@NonNull viewToUpdate: T, props: ReactStylesDiffMap)

For the vast majority of ViewManagers, you will not need to override this. Only override this if you really know what you're doing and have a very unique use-case.

Link copied to clipboard
open fun updateState(@NonNull view: T, props: ReactStylesDiffMap, stateWrapper: StateWrapper): Any?

Subclasses can implement this method to receive state updates shared between all instances of this component type.