Exemplo n.º 1
0
        void PopToRootRequest(object sender, Internals.NavigationRequestedEventArgs e)
        {
            CurrentNative?.Hide();

            var root = _pageToNative[_rootPage];

            foreach (var pair in _pageToNative)
            {
                if (pair.Value != root)
                {
                    pair.Value.Unrealize();
                }
            }
            _pageToNative.Clear();
            _nativeToPage.Clear();
            _navigationStack.Clear();

            _navigationStack.AddLast(root);
            _pageToNative[_rootPage] = root;
            _nativeToPage[root]      = _rootPage;

            UpdateLayout();
            UpdateTaskCompletionSource(e, true);
        }
Exemplo n.º 2
0
 void OnNavigationRequested(object sender, Internals.NavigationRequestedEventArgs e)
 {
     if (e.RequestType == Internals.NavigationRequestType.Push)
     {
         PushRequest(sender, e);
     }
     else if (e.RequestType == Internals.NavigationRequestType.Insert)
     {
         InsertRequest(sender, e);
     }
     else if (e.RequestType == Internals.NavigationRequestType.Pop)
     {
         PopRequest(sender, e);
     }
     else if (e.RequestType == Internals.NavigationRequestType.PopToRoot)
     {
         PopToRootRequest(sender, e);
     }
     else if (e.RequestType == Internals.NavigationRequestType.Remove)
     {
         RemoveRequest(sender, e);
     }
     UpdateHasBackButton();
 }
Exemplo n.º 3
0
 void Element_PopToRootRequested(object sender, Internals.NavigationRequestedEventArgs e)
 {
     this.Control?.PopToRoot(e.Animated);
 }
Exemplo n.º 4
0
 void Element_RemovePageRequested(object sender, Internals.NavigationRequestedEventArgs e)
 {
     this.Control?.RemovePage(e.Page);
 }
Exemplo n.º 5
0
 void Element_InsertPageBeforeRequested(object sender, Internals.NavigationRequestedEventArgs e)
 {
     this.Control?.InsertPageBefore(e.Page, e.BeforePage);
 }
Exemplo n.º 6
0
 void Element_PushRequested(object sender, Internals.NavigationRequestedEventArgs e)
 {
     this.Control?.Push(e.Page, e.Animated);
 }
Exemplo n.º 7
0
 void PopToRootRequest(object sender, Internals.NavigationRequestedEventArgs request)
 {
     _viewStack.PopToRoot();
     request.Task = Task.FromResult(true);
 }