J'ai une application utilisant le tiroir de navigation qui fournit la liste des emplacements. Dans le tiroir, il existe plusieurs options (comme le choix du pays, de la ville, etc.) que l'utilisateur peut configurer avant d'afficher la liste correspondante dans l'activité principale.
Y a-t-il une possibilité de rafraîchir la liste lorsque l'utilisateur ferme le tiroir, ou peut-être qu'il existe une autre façon de résoudre ce problème? J'ai essayé de rechercher des didacticiels mais je n'ai rien trouvé sur cet écouteur fermé de tiroir. Toutes les suggestions seraient utiles, merci!
Lorsque vous configurez le ActionBarDrawerToggle
, vous pouvez "implémenter" les rappels onDrawerClosed
et onDrawerOpened
. Voir l'exemple suivant de la 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);
Edit: Maintenant, setDrawerListener est obsolète, utilisez plutôt addDrawerListener.
la réponse reVerse est correcte au cas où vous utiliseriez également ActionBar. dans le cas où vous utilisez directement le DrawerLayout, vous pouvez lui ajouter 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) {
}
});
}
Selon commentaire du kit , addDrawerListener()
doit être utilisé maintenant que setDrawerListener()
est obsolète.