예제 #1
0
        void InitializeComponent()
        {
            SetAlignment(-1, -1);
            SetWeight(1, 1);
            SetLayoutCallback(OnLayout);

            _viewStack = new SimpleViewStack(Forms.NativeParent);
            if (Device.Idiom == TargetIdiom.Phone)
            {
                _viewStack.BackgroundColor = ElmSharp.Color.White;
            }
            _viewStack.Show();
            PackEnd(_viewStack);

            _navBar = new ShellNavBar();
            _navBar.Show();
            PackEnd(_navBar);

            IShellSectionController controller = ShellSection;

            controller.NavigationRequested += OnNavigationRequested;
            controller.AddDisplayedPageObserver(this, UpdateDisplayedPage);
            ((IShellController)Shell.Current).AddAppearanceObserver(this, ShellSection);
            ((IShellController)Shell.Current).AddFlyoutBehaviorObserver(_navBar);

            _shellSectionRenderer = CreateShellSectionRenderer(ShellSection);
            _shellSectionRenderer.NativeView.Show();
            _viewStack.Push(_shellSectionRenderer.NativeView);

            Device.BeginInvokeOnMainThread(() =>
            {
                (_shellSectionRenderer.NativeView as Widget)?.SetFocus(true);
            });
        }
예제 #2
0
        void PushRequest(object sender, Internals.NavigationRequestedEventArgs request)
        {
            var renderer = Platform.GetOrCreateRenderer(request.Page);

            _viewStack.Push(renderer.NativeView);
            request.Task = Task.FromResult(true);
            Device.BeginInvokeOnMainThread(() =>
            {
                (renderer.NativeView as Widget)?.SetFocus(true);
            });
        }
예제 #3
0
        void PushRequest(object sender, Internals.NavigationRequestedEventArgs request)
        {
            var renderer = Platform.GetOrCreateRenderer(request.Page);

            _viewStack.Push(renderer.NativeView);
            request.Task = Task.FromResult(true);
            Application.Current.Dispatcher.Dispatch(() =>
            {
                (renderer.NativeView as Widget)?.SetFocus(true);
            });
        }