2017-02-27 32 views
0

簡單的問題,我一直無法找到答案或自己找出答案。重置導航查看滾動

我該如何讓NavigationView始終以其「原始」滾動位置開始,因此無論先前滾動位置在哪裏,第一個菜單項總是可見的。

我已經試過這沒有成功:

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

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

    ... 
}); 

感謝。

回答

2

好檢查NavigationView小部件的視圖層次之後,它包括一個擴展RecyclerView一個NavigationMenuView的,所以用這個,我想出這個shenanigan:

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

如果您想在用戶選擇抽屜中的某個項目時更新抽屜項目。然後

您應該刷新onItemClick列表視圖的適配器。 致電notifydatasetchange()以反映更改。 但是,如果你想,如果用戶已經做出選擇之後,選擇列表中的一些項目,然後在抽屜的最後,你要更新的列表,對於這種情況,你

監聽抽屜事件的結束 -

public void onDrawerClosed(View view) { 

// refresh adapter and call notify data set change. 

} 

請參閱此鏈接:https://developer.android.com/training/implementing-navigation/nav-drawer.html