When using a Tabbed Page custom renderer, a blank space will be left where the Tab Bar was when the TabBar.Hidden property is set to true.
Also, the TabBar frame's height is being reset somewhere between ViewWillAppear and ViewDidAppear.
TabBar height can be forced to 0 by overriding the View property and setting the TabBar frame height to 0.
Tab Bar is not visible, page stretches to fill now empty space.
Tab Bar is hidden, page does not stretch leaving a blank space where the Tab Bar was.

https://github.com/Nathan-Coit/XamarinHideTabbarTest/tree/master/TabBarTestApp
In ViewDidLayoutSubviews for the TabbedRenderer, it looks like it's taking the TabBar's frame into account even if the TabBar is hidden (and a hidden TabBar apparently still has height).
In
ViewDidLayoutSubviewsfor the TabbedRenderer, it looks like it's taking the TabBar's frame into account even if the TabBar is hidden (and a hidden TabBar apparently still has height).
I have try to set
private void UpdateFrame(bool isHidden)
{
var tabFrame = this.TabBar.Frame;
tabFrame.Height = isHidden ? -100 : TabBarHeight;
this.TabBar.Frame = tabFrame;
}
But it still white space
Page Page => Element as Page;
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
var frame = View.Frame;
var tabBarFrame = TabBar.Frame;
if ((Element as TabbedPageBottom).IsHide)
{
TabBar.Hidden = true;
Page.ContainerArea = new Rectangle(0, 0, frame.Width, frame.Height);
}
else
{
TabBar.Hidden = false;
Page.ContainerArea = new Rectangle(0, 0, frame.Width, frame.Height - tabBarFrame.Height);
}
}
I tried and it works
Hi, any news on this issue? Unfortunately solution above doesnt work for me.
Most helpful comment
Page Page => Element as Page;
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
var frame = View.Frame;
var tabBarFrame = TabBar.Frame;
if ((Element as TabbedPageBottom).IsHide)
{
TabBar.Hidden = true;
Page.ContainerArea = new Rectangle(0, 0, frame.Width, frame.Height);
}
else
{
TabBar.Hidden = false;
Page.ContainerArea = new Rectangle(0, 0, frame.Width, frame.Height - tabBarFrame.Height);
}
}
I tried and it works