Exemple #1
0
        public void SynchronizeAppBar()
        {
            IEnumerable <FormsPage> childrens = this.FindVisualChildren <FormsPage>();

            CurrentTitle            = childrens.FirstOrDefault()?.GetTitle();
            HasNavigationBar        = childrens.FirstOrDefault()?.GetHasNavigationBar() ?? false;
            CurrentNavigationPage   = childrens.OfType <FormsNavigationPage>()?.FirstOrDefault();
            CurrentMasterDetailPage = childrens.OfType <FormsMasterDetailPage>()?.FirstOrDefault();
            var page = childrens.FirstOrDefault();

            if (page != null)
            {
                TitleBarBackgroundColor = page.GetTitleBarBackgroundColor();
                TitleBarTextColor       = page.GetTitleBarTextColor();
            }
            else
            {
                ClearValue(TitleBarBackgroundColorProperty);
                ClearValue(TitleBarTextColorProperty);
            }

            hamburgerButton.Visibility = CurrentMasterDetailPage != null ? Visibility.Visible : Visibility.Collapsed;

            if (CurrentNavigationPage != null)
            {
                HasBackButton   = CurrentNavigationPage.GetHasBackButton();
                BackButtonTitle = CurrentNavigationPage.GetBackButtonTitle();
            }
            else
            {
                HasBackButton   = false;
                BackButtonTitle = "";
            }
        }
Exemple #2
0
 private void PreviousButton_Click(object sender, RoutedEventArgs e)
 {
     if (CurrentNavigationPage != null && CurrentNavigationPage.StackDepth > 1)
     {
         CurrentNavigationPage.OnBackButtonPressed();
     }
 }
Exemple #3
0
        private async Task InternalNavigateToAsync(Type viewModelType, object parameter)
        {
            if (CurrentNavigationPage == null)
            {
                CurrentNavigationPage = Application.Current.MainPage as CustomNavigationView;
            }
            Page page = CreatePage(viewModelType, parameter);

            if (CurrentNavigationPage != null)
            {
                await CurrentNavigationPage.PushAsync(page);
            }
            else
            {
                Application.Current.MainPage = new CustomNavigationView(page);
            }

            await(page.BindingContext as BaseViewModel).InitializeAsync(parameter);
        }
Exemple #4
0
        public async Task GoBack()
        {
            var navigationStack = CurrentNavigationPage.Navigation;

            if (navigationStack.NavigationStack.Count > 1)
            {
                await CurrentNavigationPage.PopAsync();

                return;
            }

            if (_navigationPageStack.Count > 1)
            {
                _navigationPageStack.Pop();
                await CurrentNavigationPage.Navigation.PopModalAsync();

                return;
            }

            await CurrentNavigationPage.PopAsync();
        }
Exemple #5
0
        internal async void SendHomeClicked()
        {
            if (UpButtonShouldNavigate())
            {
                if (NavAnimationInProgress)
                {
                    return;
                }
                NavAnimationInProgress = true;
                await CurrentNavigationPage.PopAsync();

                NavAnimationInProgress = false;
            }
            else if (CurrentMasterDetailPage != null)
            {
                if (MasterDetailPageController.ShouldShowSplitMode && CurrentMasterDetailPage.IsPresented)
                {
                    return;
                }
                CurrentMasterDetailPage.IsPresented = !CurrentMasterDetailPage.IsPresented;
            }
        }
Exemple #6
0
        public async Task PopAsync(bool animated)
        {
            var navigationStack = CurrentNavigationPage.Navigation;

            if (navigationStack.NavigationStack.Count > 1)
            {
                if (goback)
                {
                    goback = false;
                    await CurrentNavigationPage.PopAsync();

                    Device.StartTimer(new TimeSpan(0, 0, 2), () =>
                    {
                        goback = true;
                        return(false);
                    });
                }
                else
                {
                    return;
                }
            }
        }
Exemple #7
0
        public async Task <string> DisplayAlertController(string[] values = null)
        {
            string selectionResult = await CurrentNavigationPage.DisplayActionSheet(null, "Cancelar", null, values);

            return(selectionResult);
        }
 public async Task GoBackAsync()
 {
     await CurrentNavigationPage.PopAsync();
 }