2016-01-01 2 views
0

Я пытаюсь реализовать приложение, которое скрывает панель инструментов, строку состояния и навигационную панель, но когда пользователь прикасается к экрану, они должны снова появляться. вещи, кажется, работает нормально, когда я первый скрыть элементы с помощьюView onTouchListener проблемы со строкой состояния скрыты

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.) любая помощь будет оценена!

ответ

0

К сожалению, единственным решением, с которым я имел успех, является прослушивание изменений в видимости пользовательского интерфейса и выполнение того, что вы хотели бы сделать в своем событии касания.

root.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { 
    @Override 
    public void onSystemUiVisibilityChange(int visibility) { 
     if (visibility == 0) { 
      // nav & status bar visible, treat as touch event 
     } 
    } 
});