防止在 ImageView 点击时显示状态栏

3

我有一个应用程序,使用全屏的ImageView。我还使用下面的函数隐藏状态栏。但是当用户点击图像时,状态栏又会显示出来。如何防止在用户点击时状态栏出现?

public void HideStatusBar()
    {
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
    }

myImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HideStatusBar();
            }
        });

这个解决方案只部分生效。在第一次点击时,状态栏出现,但OnClick()函数不会被调用。该函数只有在第二次点击时才会被调用。

1个回答

3

由于SYSTEM_UI_FLAG_HIDE_NAVIGATION的作用,导航栏会被隐藏,但当你点击某个东西时状态栏会重新出现。

尝试以下操作:

public void HideStatusBar()
{
   getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

1
在Android 4.3上,我遇到了以下问题:当状态栏被隐藏时,第一次点击会使状态栏重新出现,但实际的onClick事件不会触发。因此,如果你有一个按钮用于关闭活动页面,那么第一次点击除了状态栏重新出现外,什么都不会发生。按照上述提到的方法移除SYSTEM_UI_FLAG_HIDE_NAVIGATION选项解决了我的问题。我仍然保留了SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION选项。 - Marcin Czenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接