Skip to content

Instantly share code, notes, and snippets.

@HeikkiDev
Last active March 10, 2021 14:17
Show Gist options
  • Select an option

  • Save HeikkiDev/8674fbc946432a25b5e4e4e02ad71251 to your computer and use it in GitHub Desktop.

Select an option

Save HeikkiDev/8674fbc946432a25b5e4e4e02ad71251 to your computer and use it in GitHub Desktop.
Fix blank space on iOS TabbedPage when TabBar is hidden
public class AdvancedTabbedPageRenderer : TabbedRenderer
{
private Rectangle _initialContainerArea;
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
if (View == null)
{
return;
}
if (!(Element is Page page))
{
return;
}
_initialContainerArea = page.ContainerArea;
Element.PropertyChanged += OnPropertyChanged; // should be unsubscribed somewhere
if (((AdvancedTabbedPage)Element).IsTabBarVisible == false)
{
// Hide TabBar on page load
TabBar.Hidden = true;
CGRect frame = View.Frame;
page.ContainerArea = new Rectangle(0, 0, frame.Width, frame.Height);
}
}
private void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName != AdvancedTabbedPage.IsTabBarVisibleName)
{
return;
}
if (!(Element is Page page))
{
return;
}
if (((AdvancedTabbedPage)Element).IsTabBarVisible)
{
TabBar.Hidden = false;
page.ContainerArea = _initialContainerArea;
}
else
{
TabBar.Hidden = true;
CGRect frame = View.Frame;
page.ContainerArea = new Rectangle(0, 0, frame.Width, frame.Height);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment