问题描述
我有问题。我使用了Navigation.PushAsync(),所以现在在第二页上的NavigationBar中有一个后退箭头。现在,我也想在NavigationBar的中间添加一个titleview,但是由于后退按钮的缘故,它并没有在中间居中,而是在右边居中。
我已经试图像这样在AbsoluteLayout中设置它:
<NavigationPage.TitleView>
<AbsoluteLayout>
<Label Text="MyTitle" FontSize="20" AbsoluteLayout.LayoutBounds="0.5,0.5" AbsoluteLayout.LayoutFlags="PositionProportional" />
</AbsoluteLayout>
</NavigationPage.TitleView>
但结果仍然相同:(
我该如何解决?
解决方法
删除后退按钮
<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();
}