studio medium fragments ejemplo con android listener navigation-drawer

medium - Oyente cerrado de Android en el cajón



navigation view android studio (2)

Tengo una aplicación que utiliza el cajón de navegación que proporciona una lista de ubicaciones. En el cajón, hay varias opciones (como elegir país, ciudad, etc.) que el usuario puede configurar antes de mostrar la lista correspondiente en la actividad principal.

¿Existe alguna posibilidad de actualizar la lista cuando el usuario cierre el cajón o quizás haya otra forma de resolver esto? Intenté buscar tutoriales pero no encontré nada sobre este oyente cerrado del cajón. Cualquier sugerencia sería útil, gracias!


La respuesta inversa es correcta en caso de que también esté utilizando ActionBar. En caso de que solo uses el DrawerLayout directamente, puedes agregarle un DrawerListener:

View drawerView = findViewById(R.id.drawer_layout); if (drawerView != null && drawerView instanceof DrawerLayout) { mDrawer = (DrawerLayout)drawerView; mDrawer.setDrawerListener(new DrawerListener() { @Override public void onDrawerSlide(View view, float v) { } @Override public void onDrawerOpened(View view) { } @Override public void onDrawerClosed(View view) { // your refresh code can be called from here } @Override public void onDrawerStateChanged(int i) { } }); }

Según el comentario del kit , addDrawerListener() debe usarse ahora que setDrawerListener() ha quedado en desuso.


Cuando configura ActionBarDrawerToggle puede "implementar" las devoluciones de llamada onDrawerClosed y onDrawerOpened . Vea el siguiente ejemplo de los Docs :

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) { /** Called when a drawer has settled in a completely closed state. */ public void onDrawerClosed(View view) { super.onDrawerClosed(view); // Do whatever you want here } /** Called when a drawer has settled in a completely open state. */ public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); // Do whatever you want here } }; // Set the drawer toggle as the DrawerListener mDrawerLayout.addDrawerListener(mDrawerToggle);

Edición: ahora el setDrawerListener está en desuso, use addDrawerListener en su lugar.