2016-11-07 1 views
1

Ich arbeite mit Xamarin Forms und verwende MasterDetailPage und NavigationPage, und alles funktioniert. Jetzt muss ich die Seitentaste konfigurieren (drei Balken auf der linken Seite), um in allen Ansichten sichtbar zu sein.So zeigen Sie die Navigationsseitenschaltfläche in allen Ansichten an Xamarin-Formulare

Ich habe eine MasterDetailPage mit einem Menü und der Benutzer klickt auf ein Menü, um zu anderen Seiten zu navigieren. Erste Seite (Homepage) sehen wie folgt aus:

<MasterDetailPage.Detail> 
    <NavigationPage> 
     <x:Arguments> 
      <home:HomePage /> 
     </x:Arguments> 
    </NavigationPage> 
</MasterDetailPage.Detail> 

enter image description here

Wenn der Benutzer klickt in Menüs innerhalb masterdetailpage oder anderen Menüs außerhalb masterdetailpage führt es eine Navigation:

enter image description here

Die drei Die Seitenschaltfläche ist nur in der ersten Ansicht sichtbar, wenn ich zu anderen Ansichten navigiere, verschwindet diese Schaltfläche.

Aber, ich möchte etwas wie folgt aus:

enter image description here

Die Seite zurück Taste zeigt und indem diejenigen automatisch, wenn ich zu anderen Seiten navigieren und es ist in Ordnung.

Wie lassen sich die drei Balken-Seitenschaltflächen für alle Ansichten sichtbar machen und die Rückseiten-Schaltfläche beibehalten?

ich den folgenden Code verwenden zwischen den Ansichten zu navigieren:

await Navigation.PushAsync(MyNewPage()); 

Dank!

Antwort

1

Dies ist nicht möglich, da Sie auf der linken Seite keine zwei Tasten haben können. Und so viele Anwendungen, die ich gesehen habe, unterstützt keine App diese Art von UI. Es sei denn, Sie schreiben eine benutzerdefinierte Navigationsleiste und legen sie oben auf jede Seite.

Sie können einen Stapel von Detailseiten in Ihrer Haupt-MasterDetail-Seite erstellen. Wenn Sie also eine neue Seite verschieben möchten, können Sie stattdessen die Seite als Detail festlegen und das alte Detail in Ihren eigenen Stapel einfügen.

Für Android können Sie Button Event zurückspringen, um die Seite vom Stapel zu öffnen, aber auf iOS gibt es keine Zurück-Schaltfläche, so dass Sie eine Art Zurück-Schaltfläche in der Detailseite der Symbolleiste erstellen müssen.

+0

wenig Interessantes ..., werde ich versuchen, dass gerade jetzt! –

+0

jetzt habe ich zwei Symbolleisten auf der anderen Seite und wollen nicht, dass –

+0

Wessen Navigation Sie verwenden? –

1

Ihre Hauptdetailseite muss die Navigation zu den Detailseiten übernehmen, damit sie korrekt funktioniert.

das Menü Listenansicht Connect:

  • ListView.ItemSelected + = OnItemSelected;

Im OnItemSelected-Ereignis.

  • {MasterDetailPage} .Detail.Navigation.PushAsync (neues MyNewPage()); Hier

ist ein Beispiel für Master-Detail-Navigation:

async void OnItemSelected(object sender, SelectedItemChangedEventArgs e) 
    { 
     var item = e.SelectedItem as MasterPageItem; 

     if (item != null) 
     {     
      NavigationPage nextDetailPage = null; 
      await Task.Run(() => 
      {      
       nextDetailPage = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));     
      }); 
      Detail = nextDetailPage; 
      masterPage.ListView.SelectedItem = null; 
      IsPresented = false;     
     } 
    } 
+0

ich das versucht, navigieren Sie zu: erwarten ((MasterDetailPage) Application.Current.MainPage) .Detail.Navigation.PushAsync (App.ClientesPage) –

+0

ich versucht, von einer Taste außerhalb des masterdetailpage zu navigieren . Der Code oben hat das gleiche Verhalten begore. Wenn ich den Code unter es versuchte, es zeigt zwei Symbolleisten ... erwarten ((MasterDetailPage) Application.Current.MainPage) .Detail.Navigation.PushAsync (neue NavigationPage (App.ClientesPage)) –

1

Ich denke, dass Sie eine benutzerdefinierte Renderer schreiben müssen zu erreichen, was Sie wollen. Aber wenn Sie nur die Hamburger Taste halten möchten, ohne die Zurück-Taste, können Sie auf Ihre Seiten navigieren mit diesem Code:

Detail = new NavigationPage(new MyNewPage()); 
+0

danke. Ein anderer Benutzer hat mir das gesagt, aber ich muss wirklich beide Tasten verwenden, ohne jedes Mal eine andere Instanz der Navigationsseite zu erstellen. Erstellen eines benutzerdefinierten Renderings Ich muss 2 Codes schreiben, einen für iOS und einen anderen für Android, es ist eine Menge Arbeit, aber ... ich werde es versuchen! –

Verwandte Themen