我正在尝试实现一个隐藏工具栏,状态栏和导航栏的应用程序,但是当用户触摸屏幕时,它们应该重新出现。当我第一次使用
隐藏元素时,似乎工作正常 View decorView = getWindow().getDecorView();
int uiOptions =View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
toolbar.setTranslationY(-toolbar.getHeight());
但是当我触摸屏幕时,状态栏和导航栏会重新出现。 (工具栏没有。)和另一个触摸确实被听众捕获。
我已经完成了逐步调试,但第一次触摸(使状态栏和导航栏出现)并没有得到听众的识别。 第二个。 我试过查看View类代码,我在它上面设了一个断点 OnTouchEvent方法,但它永远不会被调用..或者它不可能包括在内 在我的调试中...(与android studio合作。) 任何帮助将不胜感激!
答案 0 :(得分:0)
不幸的是,我唯一成功的解决方案就是听取UI可见性的变化,并在触摸事件中执行你想做的任何事情。
root.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if (visibility == 0) {
// nav & status bar visible, treat as touch event
}
}
});