我不会谈论“为什么”,只是“如何” :-)
所以,关于
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
这不会影响平板电脑设备,它使用一个系统吧,而比单独的导航 和状态栏。
在平板电脑,你可以尝试(API等级14以后)
myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
要检测的事件,我想你可以使用它来捕捉事件:
myView.setOnSystemUiVisibilityChangeListener(
new OnSystemUiVisibilityChangeListener()
{
public void onSystemUiVisibilityChange(int visibility)
{
if (visibility == View.SYSTEM_UI_FLAG_VISIBLE) {
// TODO whatever you want
}
else {
// TODO what to do in the other case
}
}
}
);
更一般地,在这里是来自“专业Android 4应用程序开发”的额外建议
通常会同步其他更改在您的 用户界面中,导航可见性发生变化。例如,您可以选择 来隐藏和显示基于进入和退出“全屏模式”的操作栏和其他导航控件 。您可以通过 将OnSystemUiVisibilityChangeListener注册到您的View - 一般来说,View是使用控制导航知名度
。
它会影响平板设备。系统栏隐藏,直到第一次触摸发生。 – gorootde