我有一個內容視圖和左側的導航抽屜,這些抽屜在4個頁面上是公共的,而內容視圖包含4個在4個不同頁面之間導航的圖標。我想保留我的內容視圖並在所有4頁上保留導航抽屜。 我創建一個主詳細信息頁面,並將主頁面設置爲左側導航抽屜,每次更改詳細信息頁面。 我得到了異常,因爲android可以在多個頁面之間導航的同時僅導航頁面。 以下是我Rootpage和內容查看頁面在Xamarin.forms中的多個頁面之間導航?
public class RootPage : MasterDetailPage
{
LeftNavigationPanel menuPage;
public RootPage(string detailSel)
{
menuPage = new LeftNavigationPanel(); //This is the left navigation class. rename later.
Master = menuPage;
if (detailSel.Equals(""))
{
var detail = new NavigationPage(new Tabpage());
Detail = detail; //homepage
detail.Icon = "leftnav.png";
App.navigation = detail.Navigation;
}
else if (detailSel.Equals("1"))
{
var detail = new NavigationPage(new Post());
Detail = detail; //homepage
detail.Icon = "leftnav.png";
App.navigation = detail.Navigation;
// System.Diagnostics.Debug.WriteLine("page1: " + Navigation.NavigationStack[Navigation.NavigationStack.Count-1]);
}
else if (detailSel.Equals("2"))
{
var detail = new NavigationPage(new TrackTabPage());
Detail = detail; //homepage
detail.Icon = "leftnav.png";
App.navigation = detail.Navigation;
// System.Diagnostics.Debug.WriteLine("page1: " + Navigation.NavigationStack[Navigation.NavigationStack.Count - 1]);
}
}
}
內容查看
public partial class HomeContentView : ContentView
{
public HomeContentView()
{
InitializeComponent();
}
private async void read_click(Object sender, EventArgs e)
{
if (!((Navigation.NavigationStack[Navigation.NavigationStack.Count - 1]) is Tabpage))
{
//await Navigation.PopAsync();
await Navigation.PushAsync(new RootPage(""));
// this.Navigation.PopAsync();
}
}
private async void post_click(Object sender, EventArgs e)
{
if (!((Navigation.NavigationStack[Navigation.NavigationStack.Count - 1]) is Post))
{
System.Diagnostics.Debug.WriteLine("page: "+ Navigation.NavigationStack[Navigation.NavigationStack.Count - 1]);
// await Navigation.PopAsync();
await Navigation.PushAsync(new RootPage("1"));
}
}
private async void track_click(Object sender, EventArgs e)
{
if (!((Navigation.NavigationStack[Navigation.NavigationStack.Count - 1]) is TrackTabPage))
{
System.Diagnostics.Debug.WriteLine("page: " + Navigation.NavigationStack[Navigation.NavigationStack.Count - 1]);
// await Navigation.PopAsync();
await Navigation.PushAsync(new RootPage("2"));
}
}
private void play_click(Object sender, EventArgs e) { }
}
我應該在根頁面構造函數中寫什麼?我可以保留原樣嗎? – sid
這取決於你想如何在你的應用程序內導航。在「正常」情況下,您有一個「NavigationPage」,您可以在其中推送新頁面。這樣,用戶可以回溯。我在我的應用程序中更新了我的回答 – Joehl
..每個主頁上有4個不斷放置的4個圖標,用於處理4個主頁之間的導航...和功能類似...您可以通過任何當前頁面點擊各自的圖標..沒有人決定流量..我可以做這樣的導航 – sid