Cómo detectar el evento táctil fuera del cajón de navegación

He implementado el cajón de navegación de Android en mi aplicación. Soy capaz de abrir / cerrar el cajón cuando el usuario toca el lado exterior del cajón de navegación. ¿Puede alguno de ustedes ayudarme a detectar el evento de toque / clic cuando el usuario toque / haga clic en el lado del cajón de navegación. Necesito realizar alguna funcionalidad en ese evento. Por favor, compruebe la captura de pantalla adjunta. Introduzca aquí la descripción de la imagen Cualquier ayuda será apreciada.

Tienes que manejar la posición táctil en el método dispatchTouchEvent() . Más información sobre la jerarquía táctil aquí

 @Override public boolean dispatchTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { if (mDrawerLayout.isDrawerOpen(mRightDrawerListView)) { View content = findViewById(R.id.right_drawer); int[] contentLocation = new int[2]; content.getLocationOnScreen(contentLocation); Rect rect = new Rect(contentLocation[0], contentLocation[1], contentLocation[0] + content.getWidth(), contentLocation[1] + content.getHeight()); View toolbarView = findViewById(R.id.toolbar); int[] toolbarLocation = new int[2]; toolbarView.getLocationOnScreen(toolbarLocation); Rect toolbarViewRect = new Rect(toolbarLocation[0], toolbarLocation[1], toolbarLocation[0] + toolbarView.getWidth(), toolbarLocation[1] + toolbarView.getHeight()); if (!(rect.contains((int) event.getX(), (int) event.getY())) && !toolbarViewRect.contains((int) event.getX(), (int) event.getY())) { isOutSideClicked = true; } else { isOutSideClicked = false; } } else { return super.dispatchTouchEvent(event); } } else if (event.getAction() == MotionEvent.ACTION_DOWN && isOutSideClicked) { isOutSideClicked = false; return super.dispatchTouchEvent(event); } else if (event.getAction() == MotionEvent.ACTION_MOVE && isOutSideClicked) { return super.dispatchTouchEvent(event); } if (isOutSideClicked) { //make http call/db request Toast.makeText(this, "Hello..", Toast.LENGTH_SHORT).show(); } return super.dispatchTouchEvent(event); } 

Puede utilizar onDrawerClosed

Cuando toca fuera de la pantalla onDrawerClosed llamará después de cerrar el cajón de navegación

 public void onDrawerClosed(View view) { super.onDrawerClosed(view); //do here } 
  • Cambiar la fuente del título de la aplicación en android
  • Cambiar el color del icono del indicador del cajón de navegación
  • Progreso de la ventana de presentación pero no Progreso de ActionBar (utilizando la biblioteca v7 compat)
  • Obtener la altura de STATUS BAR
  • ¿La barra de título de la aplicación para Android no aparece al probar la aplicación?
  • Cómo cambiar la opacidad de TextView en Android
  • Android: cómo deshacerse de scrollView "fading edge"
  • El cajón de navegación en android no está en pantalla completa
  • Cambiar el icono de activación de ActionBarDrawer cuando se utiliza la biblioteca v7
  • Barra de herramientas Android mostrar / ocultar espacio en blanco
  • Agregar información de velocidad de red en la barra de estado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.