java - 检测状态栏何时重新出现

标签 java android statusbar samsung-mobile android-fullscreen

我的应用程序以全屏运行(沉浸式模式)。

状态栏隐藏在顶部。

某些三星手机配有手写笔。如果笔被移除,状态栏会重新出现并且不会消失。

我尝试为此事件添加监听器,但它没有被调用。

 View decorView = getActivity().getWindow().getDecorView();
        decorView.setOnSystemUiVisibilityChangeListener
                (new View.OnSystemUiVisibilityChangeListener()
                {
                    @Override
                    public void onSystemUiVisibilityChange(int visibility) {
                        // Note that system bars will only be "visible" if none of the
                        // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
                        if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                            // TODO: The system bars are visible. Make any desired
                            // adjustments to your UI, such as showing the action bar or
                            // other navigational controls.

                            System.out.print("Change event");
                        } else {
                            // TODO: The system bars are NOT visible. Make any desired
                            // adjustments to your UI, such as hiding the action bar or
                            // other navigational controls.
                            System.out.print("Change event");
                        }
                    }
                });

你知道我如何知道状态栏是否重新出现吗?

最佳答案

在我的 Activity 中,我这样做是为了让它重新隐藏状态栏:

@Override
    public void onWindowFocusChanged(boolean hasFocus)
    {
        System.out.println("Gotcha");
        super.onWindowFocusChanged(hasFocus);

        final Handler handler = new Handler();
        handler.postDelayed(new Runnable()
        {
            @Override
            public void run() {
                System.out.println("Hiding");
                _root.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            }
        }, 6000);
    }

关于java - 检测状态栏何时重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930874/

相关文章:

java - 持续检查系统中其他模块是否正常工作的模块设计模式?

java - App Engine 不生成复合索引

android - 如何使用线性布局将按钮设置到屏幕底部

java - 发送带有附件的电子邮件,发送一个空白文件

iphone - UIImagePickerController PresentViewController - ios7 中的状态栏问题

android - 如何使用 React Native 删除 android 上状态栏上的黑色覆盖

java - 关于创建类数组的困惑

java - 如果字符串池内存不足会怎样?

android - native 代码调试在 Android Studio 3 中不起作用

ios - 在 iOS 中与 InAppBrowser 插件一起使用时如何更改状态栏颜色?