2016-10-30 4 views
1

Iam, используя вкладку навигации и с помощью страницы и хотите открыть новую.Открыть новую страницу с помощью табуляции

В моем App.xaml.cs я создаю страницу навигации:

public App() 
{ 
    InitializeComponent(); 
    MainPage = new NavigationPage(new RootPage()); 
} 

В корневых страницах я заполняю Навигацию:

public RootPage() 
{ 
     NavigationPage.SetHasNavigationBar(this, false); 

     Children.Add(new TestPage1 
     { 
      Title = "TestPage1" 
     }); 

     Children.Add(new TestPage2 
     { 
      Title = "TestPage2" 
     }); 
     Children.Add(new TestPage3 
     { 
      Title = "TestPage3" 
     }); 
} 

Этого типа навигации работает довольно хорошо уже и выглядит красиво , Теперь я хочу, чтобы открыть новую страницу в TestPage3: TestPage3.xaml:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="DemoApplication.TestPage3"> 
    <Button x:Name="openSetup" Clicked="ItemClicked" Text="open Settings"/> 
</ContentPage> 

TestPage3.xaml.cs:

namespace DemoApplication 
{ 
    public partial class TestPage3 : ContentPage 
    { 
     public TestPage3() 
     { 
      InitializeComponent(); 
     } 
     void ItemClicked(object sender, EventArgs e) 
     { 
      Navigation.PushAsync(new TestPage4()); 
     } 
    } 
} 

Это также работает, но не смотрит хорошо.

Новых содержания нагрузок ниже исходная вкладка навигации и после его загрузки вкладки навигация исчезает - так содержание Page4 является своим родом прыгал :)

В других приложениях, как SoundCloud они делают то же самое, но это выглядит путь более гладкий.

Есть ли способ, чтобы сдвинуть вкладку-навигацию между задней навигацией более гладкой?

Спасибо за вашу помощь :)

ответ

2

, если вы хотите, чтобы перемещаться по вкладке, каждая вкладка должна иметь свою собственную NavigationPage. Сам TabbedPage не должен находиться в пределах NavigationPage.

MainPage = new RootPage(); 

и

Children.Add(new NavigationPage(new TestPage3 
     { 
      Title = "TestPage3" 
     })); 

 Смежные вопросы

  • Нет связанных вопросов^_^