dotnet / maui

.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
https://dot.net/maui
MIT License
22.22k stars 1.76k forks source link

Vertical centered Icons in App Shell TabBar when title is not set #11426

Open CRoederTND opened 1 year ago

CRoederTND commented 1 year ago

Description

It would be great when Icons in the bottom tab bar would be vertical centered when the title is not set. At the moment the title has a fix height so there is a empty space under the icon. Actual work around is using a custom Grid-System which is a bit messy.

Public API Changes

No public API changes needed. Just give the Title a auto height

Intended Use-Case

A lot of times I need a tab-bar with just icons, without any text to keep it easy multilingual. At the current state the AppShell is useless for this because I need to implement a custom Grid-System. But because of the easy navigation-system of the AppShell I would like to use it.

ghost commented 1 year ago

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

metalbirka commented 4 months ago

A bit late to the party, but thank you @CRoederTND for opening the ticket and raising awareness. Not sure if a workaround is needed, but in case anyone is looking for one here is one:

Since I'm using TabbedPage in my solution, I used VladislavAntonyuk's solution to demonstrate the workaround for Shell Tab: image

TabbedPage inside ViewDidLayoutSubviews() add the following

var tabItems = TabBar.Items; foreach (var tabItem in tabItems) { tabItem.Title = null; tabItem.ImageInsets = new UIEdgeInsets(6, 0, -6, 0); }

Shell

inside UpdateLayout() var tabItems = controller.TabBarController!.TabBar.Items; foreach (var tabItem in tabItems!) { tabItem.Title = null; tabItem.ImageInsets = new UIEdgeInsets(6, 0, -6, 0); }