2017-02-27 3 views
0

einfache Frage, die ich nicht in der Lage gewesen bin, eine Antwort zu finden oder selbst herauszufinden.Reset NavigationView scroll

Wie kann ich das NavigationView immer an seiner "Original" Scroll-Position starten, wenn es geöffnet ist, so dass der erste Menüpunkt immer sichtbar ist, unabhängig davon, wo die Scroll-Position vorher war.

Ich habe dies versucht, ohne Erfolg:

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

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

    ... 
}); 

Dank.

Antwort

2

Nun, nachdem die Ansicht Hierarchie des NavigationView Widget untersuchen, ist es eines NavigationMenuView umfasst ist, die RecyclerView erstreckt, so mit diesem ich mit diesem shenanigan habe kommen:

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

Wenn Sie die Schubladenelemente aktualisieren möchten, wenn der Benutzer ein Element in der Schublade ausgewählt hat. Dann

sollten Sie den Adapter für die Listview in onItemClick aktualisieren. Anruf notifydatasetchange(), um die Änderungen widerzuspiegeln. Aber, wenn Sie wollen, wenn Benutzer ein Element in der Liste ausgewählt hat, dann beim Schließen der Schublade nach Auswahl getroffen hat, wollen Sie die Liste aktualisieren, für diesen Fall, dass Sie

Hören zum Schließen der Schublade Veranstaltung -

public void onDrawerClosed(View view) { 

// refresh adapter and call notify data set change. 

} 

Siehe diesen Link: https://developer.android.com/training/implementing-navigation/nav-drawer.html

Verwandte Themen