Exemplo n.º 1
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);

            NavOptions navOptions = new NavOptions.Builder()
                                    .SetEnterAnim(Resource.Animation.slide_in_right)
                                    .SetExitAnim(Resource.Animation.slide_out_left)
                                    .SetPopEnterAnim(Resource.Animation.slide_in_left)
                                    .SetPopExitAnim(Resource.Animation.slide_out_right)
                                    .Build();

            view.FindViewById <Button>(Resource.Id.navigate_destination_button).Click += (sender, e) =>
            {
                Navigation.FindNavController((View)sender).Navigate(Resource.Id.bottom_sheet_dest, null, navOptions);
            };
        }
Exemplo n.º 2
0
        /// <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());
        }