Xamarin forms Center NavigationPage title
Sep 30 2020
Ho un problema. Ho usato Navigation.PushAsync (), quindi ora nella mia seconda pagina ho una freccia indietro nella NavigationBar. Ora voglio aggiungere anche una vista del titolo, nel mezzo della NavigationBar, ma non viene centrata esattamente al centro, ma più a destra, a causa del pulsante Indietro.
Ho già provato a impostarlo in un AbsoluteLayout come questo:
<NavigationPage.TitleView>
<AbsoluteLayout>
<Label Text="MyTitle" FontSize="20" AbsoluteLayout.LayoutBounds="0.5, 0.5" AbsoluteLayout.LayoutFlags="PositionProportional" />
</AbsoluteLayout>
</NavigationPage.TitleView>
Ma sempre lo stesso risultato :(
Come posso risolvere questo problema?
Risposte
ShubhamTyagi Sep 30 2020 at 20:06
Rimuovi il pulsante Indietro
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
NavigationPage.HasBackButton="False">
Aggiungi un'immagine personalizzata e usa TapGesture (oppure puoi usare FontAwesome o qualcosa del genere)
<AbsoluteLayout>
<Image AbsoluteLayout.LayoutBounds="0, 0.5" AbsoluteLayout.LayoutFlags="PositionProportional" WidthRequest="20" HeightRequest="20"
Source="arrow16">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
</Image.GestureRecognizers>
</Image>
<Label Text="MyTitle" FontSize="20" AbsoluteLayout.LayoutBounds="0.5, 0.5" AbsoluteLayout.LayoutFlags="PositionProportional" />
</AbsoluteLayout>
All'evento tocca la pagina
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
await Navigation.PopAsync();
}