2017-02-27 4 views
0

simple question à laquelle je n'ai pas été en mesure de trouver une réponse ou de déterminer par moi-même.Réinitialiser NavigationView scroll

Comment faire en sorte que le NavigationView démarre toujours sur sa position de défilement «original» lorsqu'il est ouvert, de sorte que le premier élément de menu soit toujours visible quelle que soit la position de défilement précédente.

J'ai essayé sans succès:

drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() { 
    ... 

    @Override 
    public void onDrawerClosed(View drawerView) { 
     drawerView.scrollTo(0, 0); 
    } 

    ... 
}); 

Merci.

Répondre

2

bien après avoir examiné la hiérarchie Affichage du widget NavigationView, il est composé d'un NavigationMenuView qui s'étend RecyclerView, donc en utilisant ce que je suis venu avec cette shenanigan:

((NavigationMenuView)((NavigationView)drawerView).getChildAt(0)).scrollToPosition(0); 
0

Si vous souhaitez mettre à jour les éléments du tiroir lorsque l'utilisateur a sélectionné un élément dans le tiroir. Ensuite

vous devez actualiser l'adaptateur pour la liste en onItemClick. appel notifydatasetchange() pour refléter les changements. Mais, si vous voulez si l'utilisateur a sélectionné un certain élément dans la liste, puis à la fermeture du tiroir après avoir fait la sélection, vous souhaitez mettre à jour la liste, pour ce cas, vous

Écoutez pour la fermeture de l'événement tiroir -

public void onDrawerClosed(View view) { 

// refresh adapter and call notify data set change. 

} 

Voir ce lien: https://developer.android.com/training/implementing-navigation/nav-drawer.html