maui
maui copied to clipboard
[iOS] Shell/NavigationPage TitleView
Fixes https://github.com/dotnet/maui/issues/9333 Fixes https://github.com/dotnet/maui/issues/19231 Fixes https://github.com/dotnet/maui/issues/5063
Current behavior
Layout options have no effect on the title view. The content inside the titleView
behaves as it has both HorizontalOptions
and VerticalOptions
set to Fill
. Also, notice that there's a horizontal margin that cannot be removed even with setting the negative values to margin eg. Margin="-20,0"
(https://github.com/dotnet/maui/issues/19231)
Currently
Proposed behavior https://github.com/dotnet/maui/issues/5063
Utilizes our current LayoutOptions to indicate how you want a TitleView to layout on the screen and removes the default horizontal margin so that we can customize it.
<NavigationPage.TitleView>
<HorizontalStackLayout BackgroundColor="red">
<Label VerticalOptions="Center" Text="Navigation page's title"/>
<Image Source="dotnet_bot.png" Scale="0.8"/>
</HorizontalStackLayout>
</NavigationPage.TitleView>
Default
- (horizontal and vertical options set to fill implicitly)
HorizontalOptions="Start"
HorizontalOptions="Center"
HorizontalOptions="End"
VerticalOptions="Start"
VerticalOptions="Center"
VerticalOptions="End"
VerticalOptions="Start"
HorizontalOptions="Start"
VerticalOptions="Center"
HorizontalOptions="Center"
VerticalOptions="End"
HorizontalOptions="End"
Remarks
I didn't implement anything that changes the behavior when additional toolbar items are added. For example, if there's a back button the title view places itself to the right of this button. It is because I'm not sure what is the desired behavior. On one hand, it looks weird that when we want to center the title it is moved to the right, but on the other, it is the default iOS's behavior and I believe a future discussion should be made https://github.com/xamarin/Xamarin.Forms/issues/4848
Hey there @kubaflo! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed.
/azp run MAUI-UITests-public
Azure Pipelines successfully started running 1 pipeline(s).
Oh my, never knew I'd see a fix from the issue I suffered from 4 years ago in X.F. days! Are there any plans to add it to .net 8 SR 4? (hopefully)
/azp run
Azure Pipelines successfully started running 3 pipeline(s).
can you retarget this for net9?
Yep, I think it is a good idea
can you retarget this for net9?
Yep, I think it is a good idea
Is there no chance we can get this fix in a patch release for .NET 8? Preferably sooner than later? I'm wrestling with this issue at the moment and would really appreciate a fix but we only use LTS versions for production apps.
I also can't use this code directly in our app because too many pieces are internal for me to drop this in as a replacement renderer.
Will this be fixed sometime soon? We can't change the color of our navigation bar to anything but white without having unsightly gaps on either end.