如何在Android应用程序中为Samsung设备隐藏全屏模式的软键

时间:2017-08-08 14:25:13

标签: android hide fullscreen softkeys

我的应用可以选择进入全屏模式。三星Galaxy S7 Edge设备的用户向我报告,在这种情况下会显示导航软按钮,并且当应用程序处于全屏状态时不会消失。

以下是我正在使用的代码:

getWindow().addFlags(
                    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                            | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
            );
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

mainFrame.setSystemUiVisibility(
                        View.SYSTEM_UI_FLAG_LOW_PROFILE |
                        View.SYSTEM_UI_FLAG_FULLSCREEN |
                        View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                        View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY |
                        View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        );

我已经玩了一些选项,但很难,因为我没有三星设备。有人使用此设备可以告诉我正确的设置,因此导航软键不会以全屏模式显示吗?

1 个答案:

答案 0 :(得分:0)

我发现了一些可能有用的东西。它来自Google的开发者网站,我认为它完全符合您的要求。我希望这会有所帮助。

我认为这部分一开始就是您所需要的,但我也为您提供了以下链接以获取更多信息:

  

Android 4.4(API Level 19)为setSystemUiVisibility()引入了一个新的SYSTEM_UI_FLAG_IMMERSIVE标志,让您的应用真正“全屏”。此标志与SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN标志结合使用时,会隐藏导航和状态栏,让您的应用程序捕获屏幕上的所有触摸事件。

https://developer.android.com/training/system-ui/immersive.html

修改

我找到了与您的类似问题的答案,建议的方法如下。尝试将此添加到您的代码中。它会做到这一点。

int UI_OPTIONS = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | 
   View.SYSTEM_UI_FLAG_FULLSCREEN | 
   View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
   View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | 
   View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;

getWindow().getDecorView().setSystemUiVisibility(UI_OPTIONS);

以下是原始链接:https://stackoverflow.com/a/31483291/8434076