2015-10-09 4 views
2

Я следую инструкциям здесь; https://www.syntaxismyui.com/xamarin-forms-masterdetail-page-navigation-recipe/Xamarin Forms Master Detail Значок страницы и значок меню

Значок навигационной панели по умолчанию расположен слишком далеко вправо. Есть ли способ сосредоточить его на панели навигации? Значок меню гамбургера также сдвинут вправо.

EDIT: Я добавил изображение для примера того, что у меня есть. Забавная штука, в другом приложении икона находится на всем пути влево.

enter image description here

EDIT:

Вот код:

public class RootPage : MasterDetailPage 
{ 
    MenuPage menuPage; 
    public RootPage() 
    { 


     menuPage = new MenuPage(); 
     menuPage.Menu.ItemSelected += (sender, e) => NavigateTo(e.SelectedItem as MenuItem); 
     Master = menuPage; 
     NavigationPage page = new NavigationPage(new Home()); 
     page.BarBackgroundColor = Color.FromHex("#56198E"); 
     Detail = page; 


    } 

    void NavigateTo(MenuItem menu) 
    { 
     if (menu == null) 
      return; 
     Page displayPage = (Page)Activator.CreateInstance(menu.TargetType); 
     NavigationPage page = new NavigationPage(displayPage); 
     page.BarBackgroundColor = Color.FromHex("#56198E"); 
     Detail = page; 

     menuPage.Menu.SelectedItem = null; 
     IsPresented = false; 
    } 
} 

public class MenuPage : ContentPage 
{ 
    public ListView Menu { get; set; } 


    public MenuPage() 
    { 
     Icon = "settings.png"; 
     Title = "menu"; // The Title property must be set. 
     BackgroundColor = Color.FromHex("#56198E"); 

     Menu = new MenuListView(); 

     var menuLabel = new ContentView 
     { 
      Padding = new Thickness(10, 36, 0, 5), 
      Content = new Label 
      { 
       TextColor = Color.FromHex("#C8C8C8"), 
       Text = "MENU", 
      } 
     }; 

     var layout = new StackLayout 
     { 
      Spacing = 0, 
      VerticalOptions = LayoutOptions.FillAndExpand 
     }; 
     layout.Children.Add(menuLabel); 
     layout.Children.Add(Menu); 

     Content = layout; 
    } 
} 

public class MenuListView : ListView 
{ 
    public MenuListView() 
    { 
     List<MenuItem> data = new MenuListData(); 

     ItemsSource = data; 
     VerticalOptions = LayoutOptions.FillAndExpand; 
     BackgroundColor = Color.Transparent; 
     // SeparatorVisibility = SeparatorVisibility.None; 

     var cell = new DataTemplate(typeof(MenuCell)); 
     cell.SetBinding(MenuCell.TextProperty, "Title"); 
     cell.SetBinding(MenuCell.ImageSourceProperty, "IconSource"); 

     ItemTemplate = cell; 
    } 
} 

    public class MenuListData : List<MenuItem> 
{ 
    public MenuListData() 
    { 
     this.Add(new MenuItem() 
     { 
      Title = " Home", 
      IconSource = "Home.png", 
      TargetType = typeof(Home) 
     }); 


     this.Add(new MenuItem() 
     { 
      Title = " Register for Classes", 
      IconSource = "Calendar.png", 
      TargetType = typeof(Register) 
     }); 

     this.Add(new MenuItem() 
     { 
      Title = " Search Instructors", 
      IconSource = "ContactsSearch.png", 
      TargetType = typeof(SearchInstructors) 
     }); 


    } 
} 

    public class MenuItem 
{ 
    public string Title { get; set; } 

    public string IconSource { get; set; } 

    public Type TargetType { get; set; } 
} 
+0

Что вы имеете ввиду «слишком далеко»? Он реализован на платформе стандартными способами. –

+0

Спасибо, я добавил картинку, чтобы проиллюстрировать, что она делает. Это тот же код, что и другое приложение, где значок страницы полностью сдвинут влево. Значок меню также перемещается влево в другом приложении. Где они должны отображаться? –

+0

Это страшная вещь ... В вашем коде должно быть что-то. Без этого трудно помочь. –

ответ

1

Я рекомендую попробовать различные размеры иконок. У меня возникли проблемы, когда изображение было слишком большим. В моих тестах я первоначально использовал изображение 144x144, и он работал правильно большую часть времени. Когда я попытался получить изображение размером 700x700 пикселей, он был мертвым центром, и я потерял бы свой титул.

Разрешение экрана

- 768x1280 App Icon 144x144 - Немного от вровень рядом с иконкой меню

700x700 - Центр

меню Пиктограмма -44x44 (и всегда на одном уровне слева)