public override void OnSaveInstanceState(Bundle outState) { base.OnSaveInstanceState(outState); outState.PutInt(FRAGMENT_STACK_SIZE_KEY, this.Fragments.Count()); for (int i = 0; i < this.Fragments.Count(); ++i) { this.ChildFragmentManager.PutFragment( outState, FragmentStackNavigationController.CreateFragmentKeyForIndex(i), this.Fragments.ElementAt(i) ); } }
public override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); if (savedInstanceState != null) { var fragmentCount = savedInstanceState.GetInt(FRAGMENT_STACK_SIZE_KEY); for (int i = 0; i < fragmentCount; ++i) { var fragment = this.ChildFragmentManager.GetFragment( savedInstanceState, FragmentStackNavigationController.CreateFragmentKeyForIndex(i) ); this.fragmentsStack.Push(fragment); } } }
public static FragmentStackNavigationController Create( int pushEnterAnimation, int pushExitAnimation, int popEnterAnimation, int popExitAnimation) { var args = new Bundle(); args.PutInt(PUSH_ENTER_ANIM_KEY, pushEnterAnimation); args.PutInt(PUSH_EXIT_ANIM_KEY, pushExitAnimation); args.PutInt(POP_ENTER_ANIM_KEY, popEnterAnimation); args.PutInt(POP_EXIT_ANIM_KEY, popExitAnimation); var fragment = new FragmentStackNavigationController(); fragment.Arguments = args; return(fragment); }