Обнаружение повторного появления строки состояния

Мое приложение работает в полноэкранном режиме (режим погружения).

Строка состояния скрыта вверху.

На некоторых телефонах Samsung есть стилус. Если перо удалить, строка состояния снова появится и не исчезнет.

Я попытался добавить прослушиватель для этого события, но он не вызывается.

 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");
                        }
                    }
                });

Знаете ли вы, как я могу узнать, появилась ли снова строка состояния?


person Aggressor    schedule 10.08.2015    source источник


Ответы (1)


В моей деятельности я делаю это, чтобы снова скрыть строку состояния:

@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);
    }
person Aggressor    schedule 11.08.2015