【发布时间】:2015-04-21 14:50:58
【问题描述】:
如何检测导航栏的存在并将其隐藏?
在我的onCreate() 中,我调用hideNavigationBar() 方法来隐藏导航栏,然后我注册一个侦听器以在每次用户触摸屏幕上的任何位置时隐藏导航栏,如documentations 报告的那样.当导航栏在触摸事件后变为可见时,侦听器再次调用hideNavigationBar() 方法,但没有效果,导航栏仍然可见。
这是我的onCreated() 方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hideNavigationBar();
View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
Toast.makeText(getApplicationContext(), "Visible", Toast.LENGTH_SHORT).show();
hideNavigationBar();
} else {
Toast.makeText(getApplicationContext(), "Not visible", Toast.LENGTH_SHORT).show();
}
}
});
}
这是我的hideNavigationBar() 方法:
private void hideNavigationBar() {
Toast.makeText(getApplicationContext(), "hideNavigationBar()", Toast.LENGTH_SHORT).show();
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
如何在每次可见时隐藏导航栏?
谢谢
【问题讨论】:
-
操作栏或导航栏?
-
@AsifMujteba 导航栏
-
检查这个以获得有效的解决方案:stackoverflow.com/questions/53509108/…
标签: android