Xamarin forms Center NavigationPage title
Sep 30 2020
У меня проблема. Я использовал Navigation.PushAsync (), поэтому теперь на моей второй странице у меня есть стрелка назад в NavigationBar. Теперь я хочу добавить заголовок в середине NavigationBar, но он центрируется не точно по центру, а ближе к правому краю из-за кнопки «Назад».
Я уже пытался установить его в AbsoluteLayout вот так:
<NavigationPage.TitleView>
<AbsoluteLayout>
<Label Text="MyTitle" FontSize="20" AbsoluteLayout.LayoutBounds="0.5, 0.5" AbsoluteLayout.LayoutFlags="PositionProportional" />
</AbsoluteLayout>
</NavigationPage.TitleView>
Но результат тот же :(
Как я могу это исправить?
Ответы
ShubhamTyagi Sep 30 2020 at 20:06
Убрать кнопку возврата
<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">
Добавьте собственное изображение и используйте TapGesture (или вы можете использовать FontAwesome или что-то в этом роде)
<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>
При нажатии на событие открывается страница
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
await Navigation.PopAsync();
}