隐藏导航栏android 6.0 xamarin

时间:2017-03-03 12:58:26

标签: c# android xamarin hide

早安, 我试图隐藏我的应用程序android上的导航栏。我有设备管理员权限,我已经创建了我的自助服务终端应用程序,但我需要隐藏导航栏。在这一刻我没有主页按钮,但我有后退按钮。如果我按它平板电脑说你不能退出设备管理员的应用程序。阻止吧我使用这个

startlocktask()

我试过过devicePolicyManager.SetStatusBarDisabled() 但这个隐藏状态不在家

我有隐藏导航栏的代码

 View decorView = Window.DecorView;
            var uiOptions = (int)decorView.SystemUiVisibility;
            var newUiOptions = (int)uiOptions;
            newUiOptions |= (int)SystemUiFlags.LowProfile;
            newUiOptions |= (int)SystemUiFlags.Fullscreen;
            newUiOptions |= (int)SystemUiFlags.HideNavigation;
            newUiOptions |= (int)SystemUiFlags.Immersive;
            newUiOptions |= (int)SystemUiFlags.ImmersiveSticky;
            decorView.SystemUiVisibility = (StatusBarVisibility)newUiOptions;

但是当有人向上拖动底部栏时,它只显示后退按钮。我不希望用户可以看到导航栏。有人能帮助我吗?

感谢 问候

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助 https://stackoverflow.com/a/19201933/4172545

这是链接的答案:

  

好的,如果有人有兴趣,我已经通过这种方式解决了我的问题:为窗口管理器添加了透明视图,宽度为1px,match_parent高度为1px。然后在此视图中添加了一个全局布局侦听器,每当布局发生更改时,我都会在屏幕上检查此视图的位置。如果它的Y为0,则状态栏不可见,因此必须运行全屏应用程序。这比本机View.OnSystemUiVisibilityChangeListener更好用,因为似乎有些应用程序不知何故不会触发该方法(如新的雅虎天气)。

因此,您可以触发事件,当导航栏可见时,通过再次调用您最初用于隐藏它的代码来隐藏它。

这是一个更简洁的方式来编写它:

 Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); 

 Window.DecorView.SystemUiVisibility = (StatusBarVisibility) 
                          (SystemUiFlags.LowProfile 
                          | SystemUiFlags.Fullscreen 
                          | SystemUiFlags.HideNavigation
                          | SystemUiFlags.Immersive
                          | SystemUiFlags.ImmersiveSticky);