Hide TabBar in Xamarin Forms Shell

Sorry, don't have enough rep. to comment.

In which class are you doing Shell.SetTabBarIsVisible(Shell.Current, false);?

Is it the Shell or Current that is null if you put it after the constructor?

Edit 30/6/2019:

I have tested a few things in Shell. Here's a link to the project: https://github.com/JesperBaltzersen/ShellTest In the class Content1.Xaml.cs there's a button handler that toggles the tabbar:

    public bool NavVisible { get; set; }

    void OnButtonTapped(object sender, EventArgs args)
    {
        NavVisible = !NavVisible;
        Shell.SetNavBarIsVisible(this, NavVisible);
    }

Hope it helps.


In my case, I need to remove tabbar from child page, then: Shell.TabBarIsVisible="False"

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             Title="Child page from shell"
             Shell.TabBarIsVisible="False"
             x:Class="AppMvvm.Views.User.LoginPage/>

Another approach:

<Shell 
X:Class="..............:
xmlns:sd="..................."
Shell.IsTabBarVisible="False">

</Shell>

TabBarIsVisible is an attached property of Shell. You should pass the page as the first parameter in the SetTabBarIsVisible to tell the shell hiding its tab bar. Use it like:

public AppShell()
{
    InitializeComponent();

    Shell.SetTabBarIsVisible(this, false);
}

You can also place it on any page which you don't need the tab bar.