/// <summary> /// Used by the native animated module to bypass the process of /// updating the values through the shadow view hierarchy. This method /// will directly update the native views, which means that updates for /// layout-related props won't be handled properly. /// </summary> /// <param name="tag">The view tag.</param> /// <param name="props">The props.</param> /// <remarks> /// Make sure you know what you're doing before calling this method :) /// </remarks> public bool SynchronouslyUpdateViewOnDispatcherThread(int tag, JObject props) { DispatcherHelpers.AssertOnDispatcher(); // First check if the view exists, as the views are created in // batches, and native modules attempting to synchronously interact // with views may attempt to update props before the batch has // been processed. if (NativeViewHierarchyManager.ViewExists(tag)) { NativeViewHierarchyManager.UpdateProps(tag, props); return(true); } else { return(false); } }
/// <summary> /// Instantiates the <see cref="UIViewOperationQueue"/>. /// </summary> /// <param name="reactContext">The React context.</param> /// <param name="nativeViewHierarchyManager"> /// The native view hierarchy manager. /// </param> public UIViewOperationQueue(ReactContext reactContext, NativeViewHierarchyManager nativeViewHierarchyManager) { _nativeViewHierarchyManager = nativeViewHierarchyManager; _reactContext = reactContext; }
/// <summary> /// Instantiates the <see cref="UIViewOperationQueueInstance"/>. /// </summary> /// <param name="reactContext">The React context.</param> /// <param name="nativeViewHierarchyManager"> /// The native view hierarchy manager associated with this instance. /// </param> /// <param name="reactChoreographer"> /// The choreographer associated with this instance. /// </param> public UIViewOperationQueueInstance(ReactContext reactContext, NativeViewHierarchyManager nativeViewHierarchyManager, ReactChoreographer reactChoreographer) { _nativeViewHierarchyManager = nativeViewHierarchyManager; _reactContext = reactContext; _reactChoreographer = reactChoreographer; }