/// <summary> /// 导航跳转到 res\navigation\xx_navigation.xml 中指定的 Id 对应的 Fragment /// </summary> /// <param name="navController"></param> /// <param name="resId"></param> /// <param name="destinationId"></param> /// <param name="inclusive"></param> /// <param name="isReplace">跳转的行为是否为替换,如果是则不能通过后退返回之前的页面</param> public static void Navigate(this NavController navController, [IdRes] int resId, [IdRes] int?destinationId, bool inclusive) { var builder = new NavOptions.Builder() .SetLaunchSingleTop(true) .SetEnterAnim(R.anim.slide_in_right) .SetExitAnim(R.anim.slide_out_left) .SetPopEnterAnim(R.anim.slide_in_left) .SetPopExitAnim(R.anim.slide_out_right); if (destinationId.HasValue) { builder.SetPopUpTo(destinationId.Value, inclusive); } navController.Navigate(resId, null, builder.Build()); }
private void Navigate(string sceneName) { _navController.Navigate(sceneName) .Then(x => { Debug.Log(string.Format("PromiseTestRunner.Navigate - Then={0}", x)); Debug.Log(string.Format("PromiseTestRunner.Navigate - scene.SceneName={0}", x.SceneName)); ChangeColor(navSuccessColor); return(x); }) .Fail <ArgumentException>(x => Debug.Log(string.Format("PromiseTestRunner.Navigate - [Fail<ArgumentException>] ERRORR! x={0}", x))) .Fail <System.Net.HttpStatusCode>(x => Debug.Log(string.Format("PromiseTestRunner.Navigate - [Fail<HttpStatusCode>] ERRORR! x={0}", x))) .Fail(x => { Debug.Log(string.Format("PromiseTestRunner.Navigate - [Fail] GENERAL ERRORR! x={0}", x)); ChangeColor(navErrorColor); }) .Finally(() => Debug.Log(string.Format("PromiseTestRunner.Navigate - [Finally] ends"))) .Done(x => Debug.Log(string.Format("PromiseTestRunner.Navigate - [Done] x={0}", x))); ChangeColor(navProcessingColor); }