@@ -382,32 +382,7 @@ class FragNavController constructor(private val fragmentManger: FragmentManager,
382382 */
383383 @JvmOverloads
384384 fun clearStack (transactionOptions : FragNavTransactionOptions ? = defaultTransactionOptions) {
385- if (currentStackIndex == NO_TAB ) {
386- return
387- }
388-
389- // Grab Current stack
390- val fragmentStack = fragmentStacksTags[currentStackIndex]
391-
392- // Only need to start popping and reattach if the stack is greater than 1
393- if (fragmentStack.size > 1 ) {
394- val ft = createTransactionWithOptions(transactionOptions, true )
395-
396- // Pop all of the fragments on the stack and remove them from the FragmentManager
397- while (fragmentStack.size > 1 ) {
398- val fragment = getFragment(fragmentStack.pop())
399- if (fragment != null ) {
400- ft.removeSafe(fragment)
401- }
402- }
403-
404- // Attempt to reattach previous fragment
405- val fragment = addPreviousFragment(ft, shouldDetachAttachOnPushPop())
406-
407- commitTransaction(ft, transactionOptions)
408- mCurrentFrag = fragment
409- transactionListener?.onFragmentTransaction(currentFrag, TransactionType .POP )
410- }
385+ clearStack(currentStackIndex,transactionOptions)
411386 }
412387
413388 /* *
@@ -417,7 +392,7 @@ class FragNavController constructor(private val fragmentManger: FragmentManager,
417392 * @param transactionOptions Transaction options to be displayed
418393 */
419394 @JvmOverloads
420- fun clearTabStack (tabIndex : Int , transactionOptions : FragNavTransactionOptions ? = defaultTransactionOptions) {
395+ fun clearStack (tabIndex : Int , transactionOptions : FragNavTransactionOptions ? = defaultTransactionOptions) {
421396 if (tabIndex == NO_TAB ) {
422397 return
423398 }
@@ -427,7 +402,9 @@ class FragNavController constructor(private val fragmentManger: FragmentManager,
427402
428403 // Only need to start popping and reattach if the stack is greater than 1
429404 if (fragmentStack.size > 1 ) {
430- val ft = createTransactionWithOptions(transactionOptions,true ,false )
405+ // Only animate if we're clearing the current stack
406+ val shouldAnimate = tabIndex == currentStackIndex
407+ val ft = createTransactionWithOptions(transactionOptions,true , shouldAnimate)
431408
432409 // Pop all of the fragments on the stack and remove them from the FragmentManager
433410 while (fragmentStack.size > 1 ) {
0 commit comments