public Fragment Enter(string gameObjectName, FragmentIntent intent) { Fragment nextFragment = FindFragmentByName(gameObjectName); Enter(ref nextFragment, intent); return(nextFragment); }
public Fragment Enter(string gameObjectName, bool isDoAnimation) { FragmentIntent intent = new FragmentIntent(); intent.isDoAnimation = isDoAnimation; return(Enter(gameObjectName, intent)); }
public void Enter(ref Fragment nextFragment, bool isDoAnimation) { FragmentIntent intent = new FragmentIntent(); intent.isDoAnimation = isDoAnimation; Enter(ref nextFragment, intent); }
public void Enter(ref Fragment nextFragment, FragmentIntent intent) { Fragment activeFragment = GetTopFragment(); //先要显示下一个 让界面加载出来 再显示动画 switch (intent.launchMode) { case FragmentIntent.FLAG_CLEAR_TOP: bool isInStack = fragmentStack.Contains(nextFragment); if (isInStack) { ClearTopFragments(nextFragment); } //不在显示栈中要进栈 EnterSpecificFragment(ref nextFragment, !isInStack); break; case FragmentIntent.FLAG_NEW_INSTANCE: EnterSpecificFragment(ref nextFragment, true); break; case FragmentIntent.FLAG_SINGLE_INSTANCE: isInStack = fragmentStack.Contains(nextFragment); if (isInStack) { FragmentExitStack(nextFragment, false); } EnterSpecificFragment(ref nextFragment, true); break; } nextFragment.OnIntent(intent.extra); if (intent.isDoAnimation) { GetFragmentAnimator().DoAnimation(nextFragment, activeFragment, () => { ExitSpecificFragment(activeFragment, false); }); } else { ExitSpecificFragment(activeFragment, false); } }