2016-07-26 17 views
0

Ich begann gerade mit Xamarin Formen und folgte this Beispiel. Für den Querformat-Modus ist jedoch immer die Navigationsleiste geöffnet. Ist das Standardverhalten? Unten ist mein CodeSchließen Xamarin Formen Navigation Schublade

public class NavigationDrawer : MasterDetailPage // Navigation Drawer using MasterDetailPage 
{ 
    public override bool ShouldShowToolbarButton() 
    { 
     return true; 
    } 

    ContentPage gotoPage; 
    public NavigationDrawer() 
    { 

     Title = "Navigation Drawer Using MasterDetailPage"; 
     string[] myPageNames = { "Camera2 Demo", "Second", "Third" }; 
     SizeChanged += NavigationDrawer_SizeChanged; 
     ListView listView = new ListView 
     { 
      ItemsSource = myPageNames, 
     }; 
     this.Master = new ContentPage 
     { 
      Title = "Options", 
      Content = listView, 
      Icon = "hamburger.png" 
     }; 

     listView.ItemTapped += (sender, e) => 
     { 

      switch (e.Item.ToString()) 
      { 
       case "Camera2 Demo": 
        gotoPage = new CameraPage(); 
        break; 
       case "Second": 
        gotoPage = new SecondPage(); 
        break; 
       case "Third": 
        gotoPage = new ThirdPage(); 
        break; 
       default: 
        gotoPage = new NavigationPage1(); 
        break; 
      } 

      Detail = new NavigationPage(gotoPage); 
      ((ListView)sender).SelectedItem = null; 
      this.IsPresented = true; 

     }; 

     Detail = new NavigationPage(new HomePage()); 
     IsPresented = false; 

     //// For Windows Phone, provide a way to get back to the master page. 
     //if (Device.OS == TargetPlatform.WinPhone) 
     //{ 
     // (this.Detail as ContentPage).Content.GestureRecognizers.Add(
     //  new TapGestureRecognizer((view) => 
     //  { 
     //   this.IsPresented = true; 
     //  })); 
     //} 
    } 

Frage

1) Wie würde ich das Öffnen und Schließen der Navigationsleiste steuern? Ich habe einen Weg gefunden, über den wir die Breite der Navigationsschublade steuern können. Here ist der Link. Aber ist dies die beste verfügbare Option?

1) Da Projekt erfordert CrossPlasform Xamarin Forms Kontrollen scheint eine der Option zu sein.

2) Sollten wir mit benutzerdefinierten Steuerelementen und nicht Xamarin Forms-Steuerelemente gehen?

Ich begann gerade mit Xamarin Beispielcode würde schätzen, wenn jemand mich durch diese führen kann.

Antwort

1

Sie müssten MasterBehavior = MasterBehavior.Popover auf der MasterDetailPage festlegen, um zu erzwingen, dass das gewünschte Verhalten angezeigt wird. Andernfalls wird standardmäßig MasterBehavior.Default angezeigt, das im Querformat immer geöffnet ist.

1

1) Wie kann ich das Öffnen und Schließen der Navigationsschublade steuern?

Verwenden Sie this.IsPresented = true; zum Öffnen und this.IsPresented = false; zum Schließen der Schublade. Über die anderen Fragen verstehe ich Sie nicht gut, aber je nach Ihren Anforderungen sollten Sie benutzerdefinierte Steuerelemente erstellen oder von NuGet herunterladen.

Hinweis:
glaube ich, das Wichtigste für einen Anfänger zu lernen, wie eine native Code zu implementieren DependencyService verwenden und auch Entwurfsmuster wie MVVM verwenden.

Verwandte Themen