@@ -256,15 +256,26 @@ private void executeStartWithPop(final FragmentManager fragmentManager, final IS
256
256
257
257
mockStartWithPopAnim (from , to , from .getSupportDelegate ().mAnimHelper .popExitAnim );
258
258
fragmentManager .popBackStackImmediate ();
259
+
259
260
mHandler .post (new Runnable () {
260
261
@ Override
261
262
public void run () {
262
- FragmentationHack .reorderIndices (fragmentManager );
263
- if (preFragment != null && preFragment .getSupportDelegate ().mContainerId == fromContainerId ) {
264
- preFragment .getSupportDelegate ().start (to );
265
- } else {
266
- dispatchStartTransaction (fragmentManager , from , to , 0 , ISupportFragment .STANDARD , TYPE_ADD );
267
- }
263
+ /**
264
+ * This `post` is for compatibility with v4-27.0.0
265
+ * @see android.support.v4.app.FragmentManagerImpl#animateRemoveFragment
266
+ */
267
+ mHandler .post (new Runnable () {
268
+ @ Override
269
+ public void run () {
270
+ fragmentManager .executePendingTransactions ();
271
+ FragmentationHack .reorderIndices (fragmentManager );
272
+ if (preFragment != null && preFragment .getSupportDelegate ().mContainerId == fromContainerId ) {
273
+ preFragment .getSupportDelegate ().start (to );
274
+ } else {
275
+ dispatchStartTransaction (fragmentManager , from , to , 0 , ISupportFragment .STANDARD , TYPE_ADD );
276
+ }
277
+ }
278
+ });
268
279
}
269
280
});
270
281
}
@@ -491,9 +502,18 @@ public void call() {
491
502
mHandler .post (new Runnable () {
492
503
@ Override
493
504
public void run () {
494
- mPopToTempFragmentManager = finalFragmentManager ;
495
- afterPopTransactionRunnable .run ();
496
- mPopToTempFragmentManager = null ;
505
+ /**
506
+ * This `post` is for compatibility with v4-27.0.0
507
+ * @see android.support.v4.app.FragmentManagerImpl#animateRemoveFragment
508
+ */
509
+ mHandler .post (new Runnable () {
510
+ @ Override
511
+ public void run () {
512
+ mPopToTempFragmentManager = finalFragmentManager ;
513
+ afterPopTransactionRunnable .run ();
514
+ mPopToTempFragmentManager = null ;
515
+ }
516
+ });
497
517
}
498
518
});
499
519
}
@@ -606,6 +626,7 @@ private void handleMock(Animation exitAnim, boolean afterRunnable, Callback cb,
606
626
delay = duration + BUFFER_TIME ;
607
627
} else {
608
628
duration = duration + BUFFER_TIME ;
629
+ delay = duration ;
609
630
}
610
631
exitAnim .setDuration (duration );
611
632
}
0 commit comments