Android ICS隐藏系统栏
我试图隐藏/最小化Android 4.0.3中的系统栏。现在我正在做什么Android ICS隐藏系统栏,android,Android,我试图隐藏/最小化Android 4.0.3中的系统栏。现在我正在做什么 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 在我的活动的onCreate事件中。一旦用户触摸屏幕,该条将再次显示。根据其他STO线程,这种行为是无法避免的。 我的想法是捕捉视图中的任何触摸事件,并在显示后立即重新隐藏该条。在click处理程序中运行上面显示的代码没有效果。 如何实现(几乎不)隐
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
在我的活动的onCreate
事件中。一旦用户触摸屏幕,该条将再次显示。根据其他STO线程,这种行为是无法避免的。
我的想法是捕捉视图中的任何触摸事件,并在显示后立即重新隐藏该条。在click处理程序中运行上面显示的代码没有效果。
如何实现(几乎不)隐藏条 我不会谈论“为什么”,只会谈论“如何”:) 那么,关于
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
这不会影响使用系统栏而不是单独导航的平板电脑设备
和状态栏
在平板电脑上,您可以尝试(API级别14以后)
要检测事件,我认为您可以使用此来捕获事件:
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应用程序开发”的额外建议
通常,在您的系统中同步其他更改是一种良好的做法
具有导航可见性更改的UI。例如,您可以选择
隐藏和显示操作栏和其他导航控件的步骤
基于进入和退出“全屏模式”。您可以通过
将OnSystemMivibilityChangeListener注册到视图-
通常,用于控制导航可见性的视图
.你不能隐藏它,但你可以简单地禁用它,除了home。尝试使用SYSTEM\u UI\u FLAG\u LOW\u PROFILE可调暗系统栏,使用
onWindowFocusChanged()
可获取焦点并将其折叠。它会影响平板电脑设备。在第一次触摸之前,系统栏一直处于隐藏状态。
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
}
}
}
);