Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 再次显示虚拟按钮后隐藏它们_Java_Android_User Interface - Fatal编程技术网

Java 再次显示虚拟按钮后隐藏它们

Java 再次显示虚拟按钮后隐藏它们,java,android,user-interface,Java,Android,User Interface,我发现,我可以通过以下方式隐藏android手机的虚拟按钮: this.getWindow().getDecorView().setSystemMivibility(视图、系统、用户界面、标志、隐藏、导航) 但一旦用户通过从边缘滑动使它们可见,它们就会保持可见 过一会儿我怎么能再把它们藏起来 提前谢谢 编辑: 我开始一项新的活动。 启动此新活动时,我在onCreate方法中调用此函数以隐藏actionbar和虚拟按钮: this.requestWindowFeature(Window.FEATU

我发现,我可以通过以下方式隐藏android手机的虚拟按钮:

this.getWindow().getDecorView().setSystemMivibility(视图、系统、用户界面、标志、隐藏、导航)

但一旦用户通过从边缘滑动使它们可见,它们就会保持可见

过一会儿我怎么能再把它们藏起来

提前谢谢

编辑:

我开始一项新的活动。 启动此新活动时,我在onCreate方法中调用此函数以隐藏actionbar和虚拟按钮:

this.requestWindowFeature(Window.FEATURE\u NO\u TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏)

this.getWindow().getDecorView().setSystemMivibility(视图、系统、用户界面、标志、隐藏、导航)

编辑:

这就是你所做的:

这也是你想要做的:


所以,基本上,当你隐藏一个项目时,你需要监听(检查)它是否被更改(打开/关闭),然后从那里重新启用它。我会复制/粘贴代码,但它位于这些链接中。

请提供有关您代码的更多信息。编辑我的评论,希望这是足够的信息。该功能仅在Android 4.1或更高版本上可用。感谢anwser,但我有最后一个问题:我注册了侦听器,当我滑动虚拟按钮时,他会被呼叫,但是按钮不会再隐藏了@重写系统可访问性更改(int可见性){if((可见性和视图.系统UI标志\全屏)==0){getWindow().getDecorView().设置系统可访问性(视图.系统UI标志\隐藏导航\视图.系统UI标志\全屏);为了更好的可视性,将其写在顶部。是否为对象创建了侦听器?是的,我为控制台生成了Log.d输出,因此我知道该方法已被调用
  @Override
  public void onSystemUiVisibilityChange(int visibility) {

      if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {

             getWindow().getDecorView().setSystemUiVisibility(
                           View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
                           | View.SYSTEM_UI_FLAG_FULLSCREEN);
     } else {

     }
  }