Xamarin Forms de pages principale-Détails Icône et l'Icône de Menu
Je suis en suivant les instructions ici;
https://www.syntaxismyui.com/xamarin-forms-masterdetail-page-navigation-recipe/
La navigation de l'icône de la barre est placée trop loin vers la droite par défaut. Est-il un moyen de les centrer sur la barre de navigation? Le hamburger icône de menu est également poussé loin vers la droite.
EDIT: j'ai ajouté une photo pour un exemple de ce que j'ai. Drôle de chose, dans une autre application, l'icône est tout le chemin à gauche.
EDIT:
Voici le code:
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; }
}
- Que voulez-vous dire par "trop loin"? Il est mis en œuvre dans la plate-forme de façon standard.
- Merci, j'ai ajouté une image pour illustrer ce que sa fait. C'est le même code que une autre application où l'icône de la page est poussé vers la gauche. L'icône de menu est également poussé tout le chemin à gauche dans l'autre app. Où sont-ils censés être affichés?
- C'est un strage chose... Il doit y avoir quelque chose dans votre code. Il est difficile d'aider sans elle.
- Ok édité avove. Merci
- J'ai été confrontées à ce même problème. Mon problème était que l'Icône a été aligné à gauche, alors qu'il était à la gauche, mais a été décalé d'un bit à droite comme si il y avait un invisible copie de lui-même. Maintenant son droit au milieu de l'écran. Une chose que j'ai modifier la taille de l'image. Je vais faire quelques tests et voir si je ne peux pas publier les résultats, à voir si cela aide.
- oui, j'ai trouvé que le fait de changer la taille de l'image corrigée tout. Merci!
Vous devez vous connecter pour publier un commentaire.
Je vous recommande d'essayer les différentes tailles d'icônes. J'ai eu quelques problèmes avec moi-même quand l'image était trop grande. Dans mes tests, j'ai été à l'origine à l'aide d'un 144x144 image et il a fonctionné correctement la plupart du temps. Quand j'ai tenté de faire une 700x700 pixel de l'image il était en plein centre et je voudrais perdre mon titre.
La Résolution de l'écran - 768x1280
Icône De L'Application
144x144 - Légèrement à l'écart de chasse à côté de l'Icône de Menu
700x700 - Centre
Icône du Menu 44x44 (et toujours aligné à gauche)