2017-02-27 48 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