My Xamarin.Android MVVMCross fragment implements View.IOnSystemUiVisibilityChangeListener
Here is fragment OnViewCreated
method
View _decorview = ParentActivity.Window.DecorView;
_decorview.SetOnSystemUiVisibilityChangeListener(this);
var uiOptions =
SystemUiFlags.HideNavigation |
SystemUiFlags.ImmersiveSticky;
_decorview.SystemUiVisibility = (StatusBarVisibility)uiOptions;
Here is an OnSystemUiVisibilityChange
method:
public void OnSystemUiVisibilityChange([GeneratedEnum] StatusBarVisibility visibility)
{
if (((int)visibility & (int)SystemUiFlags.HideNavigation) == 0)
{
if (ParentActivity.BottomNavigation != null)
ParentActivity.BottomNavigation.Visibility = ViewStates.Gone;
}
else
{
if (ParentActivity.BottomNavigation != null)
ParentActivity.BottomNavigation.Visibility = ViewStates.Visible;
}
}
But this method doesn't calls when I swipe up to show navigation bar
Flag SystemUiFlags.ImmersiveSticky
prevent receiving a callback when the system UI visibility changes