Skip to content

Commit 697de67

Browse files
committed
Adding post rendering onComplete handler to reset animation state
1 parent 8ff0e42 commit 697de67

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

ReactWindows/ReactNative/UIManager/NativeViewHierarchyManager.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,7 @@ public void BeginAnimation(int reactTag, AnimationManager animation, ICallback c
104104
DispatcherHelpers.AssertOnDispatcher();
105105
var viewToAnimate = ResolveView(reactTag);
106106
int animationId = animation.AnimationId;
107-
108-
107+
109108
}
110109

111110
/// <summary>
@@ -213,7 +212,7 @@ internal void ConfigureLayoutAnimation(JObject config, ICallback success, ICallb
213212
_LayoutAnimator.InitializeFromConfig(config);
214213
}
215214

216-
void ClearLayoutAnimation()
215+
public void ClearLayoutAnimation()
217216
{
218217
_LayoutAnimator.Reset();
219218
}

ReactWindows/ReactNative/UIManager/UIViewOperationQueue.cs

+16-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ namespace ReactNative.UIManager
1616
/// <see cref="UIManagerModule"/> once a JavaScript batch of UI operations
1717
/// is finished.
1818
/// </summary>
19-
public class
20-
UIViewOperationQueue
19+
public class UIViewOperationQueue
2120
{
2221
private readonly int[] _measureBuffer = new int[4];
2322

@@ -177,6 +176,14 @@ public void EnqueueCreateView(
177176
initialProperties));
178177
}
179178

179+
/// <summary>
180+
/// Clears the animation layout updates.
181+
/// </summary>
182+
public void ClearAnimationLayout()
183+
{
184+
_nativeViewHierarchyManager.ClearLayoutAnimation();
185+
}
186+
180187
internal void EnqueueConfigureLayoutAnimation(JObject config, ICallback success, ICallback error)
181188
{
182189
EnqueueOperation(() => _nativeViewHierarchyManager.ConfigureLayoutAnimation(config, success, error));
@@ -365,10 +372,17 @@ internal void ExecuteOperations(int batchId)
365372
{
366373
operation();
367374
}
375+
376+
OnOperationGroupExecuted();
368377
}
369378
}
370379
}
371380

381+
internal void OnOperationGroupExecuted()
382+
{
383+
_nativeViewHierarchyManager.ClearLayoutAnimation();
384+
}
385+
372386
private void EnqueueOperation(Action action)
373387
{
374388
lock (_operationsLock)

0 commit comments

Comments
 (0)