Начиная с API 14, вы можете использовать этот флаг SYSTEM_UI_FLAG_HIDE_NAVIGATION
в представлении в своей деятельности, чтобы сообщить системе, что вы хотите скрыть панель навигации, пока пользователь не коснется (экрана ). Как только пользователь касается экрана, отображается полоса.
Действие, в котором я это делаю, выполняет какое-то действие (, запускает отдельное действие ), когда пользователь касается экрана, до добавления вышеуказанного флага в мое представление это работало отлично.
После добавления этого флага система перехватывает первое прикосновение к экрану и реагирует на него, показывая панель навигации.Только после второго касания любой из моих просмотров или моей активности получает TouchEvents.
Кто-нибудь знает, как я могу настроить прослушиватель, который позволит мне запустить второе действие при первом касании экрана вместо двойного нажатия при использовании этого флага скрытия навигации?
Я пробовал все следующее, и я не получаю обратных вызовов ни к одному из них, когда экран касается в первый раз, чтобы отобразить панель навигации.
@Override
public void onUserInteraction(){
Log.i(myTag, "INTERACT");
}
@Override
public boolean onGenericMotionEvent(MotionEvent me){
Log.i(myTag, "GENERIC");
return true;
}
//I thought maybe the size change would lead to a callback here. No dice though.
@Override
public void onWindowAttributesChanged(WindowManager.LayoutParams params){
Log.i(myTag, "WINDOW CHANGE");
}
@Override
public boolean dispatchTouchEvent(MotionEvent me){
Log.i(myTag, "TOUCH");
return true;
}
Примечание. :Я не пытаюсь предотвратить отображение панели навигации при первом касании, я просто хочу предпринять какое-то другое действие при возникновении этого события.