Prism - Xamarin Forms: как сохранить нижнюю вкладку активной во время навигации - PullRequest
0 голосов
/ 08 июня 2018

Я - приложение призмы xamarin форм, у меня есть 3 вкладки, и панель вкладок активна только на этой конкретной странице. Если я перемещаюсь глубоко внутри определенной вкладки, нижняя вкладка исчезает.Есть ли способ сохранить активную нижнюю вкладку, даже когда мы переходим на другие страницы внутри этих вкладок?

Я пытался сделать что-то вроде this , но я не могу сделать это впризма.

Без призмы это довольно просто сделать, как показано в приведенной выше ссылке, но я не имею дело с призмой.Кто-нибудь может подсказать, как мне этого добиться?

МОЙ КОД: App.Xaml.cs

protected override async void OnInitialized()
        {
            InitializeComponent();
            await NavigationService.NavigateAsync("NavigationPage/MainPage");
        }

MainPage.XML

<?xml version="1.0" encoding="UTF-8"?>
< TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core" 
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core" 
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core"


             xmlns:local="clr-namespace:MyTabs.Common.Views"
             x:Class="MyTabs.Common.Views.MainPage" BackgroundColor="Olive" BarBackgroundColor="Maroon">
     <TabbedPage.Children>
     <local:PageOne Title="PageOne"
                         Icon="PageOne.png" />

    <local:PageTwo Title="PageTwo"
                         Icon="PageTwo.png" />

    <NavigationPage Title="PageThree" Icon="PageThree s.png">
        <x:Arguments> 
                    <local: PageThree/> 
        </x:Arguments>
        </NavigationPage>
    <local:PageFour Title="PageFour"
                         Icon="PageFour.png" />
    </TabbedPage.Children>
</TabbedPage>

PageThreeViewModel:

public class PageThreeViewModel : ViewModelBase
    {
        private ICommand pageFiveCommand;
        public ICommand PageFiveCommand { get { return pageFiveCommand; } }

        private void OnCloseCommand()
        {
            _navigationService.GoBackAsync();
        }

        public PageThreeCommand ViewModel()
        {
            pageFiveCommand = new DelegateCommand(OnPageFiveCommand);
        }

        private async void OnPageFiveCommand()
        {
            //await _navigationService.NavigateAsync(?NavigationPage/PageFive");
            await _navigationService.NavigateAsync("GiftCardPage");
        }
    }

1 Ответ

0 голосов
/ 08 июня 2018

Этого можно добиться, обернув ContentPage внутри TabbedPage с NavigationPage.

Код :

<TabbedPage>
    <TabbedPage.Children>
        <NavigationPage Title="Home" Icon="home.png">
            <x:Arguments>
                <ContentPage>
                    //Your ContentPage here
                    //You can have a ViewModel for this ContentPage and Navigate inside that and will still have the Tabbed Page outside.
                </ContentPage>
            </x:Arguments>
        </NavigationPage>
    </TabbedPage.Children>
</TabbedPage>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...