При переходе от страницы с вкладками к странице содержимого она скрывает вкладку, но я хочу, чтобы страницы с вкладками были такими же, как на странице содержимого. - PullRequest
0 голосов
/ 31 мая 2018

У меня есть 3 страницы с вкладками внутри форм Xamarin.Таких как Tab1 Tab2 и Tab3.Внутри вкладки Tab1 с нажатием 1 кнопки на нажатие этой кнопки я открываю новую страницу.

[XamlCompilation(XamlCompilationOptions.Compile)]
        public partial class MyTabbedpage: TabbedPage
        {
            public MyTabbedpage()
            {
                InitializeComponent();

            }
     private void Button_Clicked(object sender, EventArgs e)
            {
           Navigation.PushAsync(new MyContentPage());
            }
        }

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MyTabbedpage"
            >
    <ContentPage x:Name="MySchedule" Title="Tab1" Icon="Calender.png">
        <StackLayout>
            <Button Clicked="Button_Clicked" Text="Test"></Button>
        </StackLayout>
    </ContentPage>
    <ContentPage x:Name="Submission" Title="Tab2">
        <StackLayout>

            </ListView>
        </StackLayout>
    </ContentPage>
    <ContentPage x:Name="Code" Title="Tab3">

    </ContentPage>
</TabbedPage

При нажатии на кнопку она перемещается по MyContentPage.в то время моя вкладка скрыта, потому что я перехожу на новую страницу.Но я хочу, чтобы страницы с вкладками, как это на MyContentPage.Как я могу это сделать?

1 Ответ

0 голосов
/ 31 мая 2018

В этом случае каждый Tab должен быть заключен в метод NavigationPage, а PushAsync должен вызываться не на уровне TabbedPage, а на его дочернем уровне.

Пример:

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MyTabbedpage">
    <TabbedPage.Children>
        <NavigationPage x:Name="MySchedule" Icon="Calender.png" Title="Tab1">
            <x:Arguments>
                <ContentPage >
                    <StackLayout>
                        <Button Clicked="Button_Clicked" Text="Test"></Button>
                    </StackLayout>
                </ContentPage>
            </x:Arguments>
        </NavigationPage>
    </TabbedPage.Children>
</TabbedPage>

[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MyTabbedpage: TabbedPage
{
    public MyTabbedpage()
    {
        InitializeComponent();

    }
    async void Button_Clicked(object sender, EventArgs e) =>
        await MySchedule.Navigation.PushAsync(new MyContentPage());
}

Более подробную информацию о Hierarchical Navigation можно найти здесь .

...