重置NavigationView滚动

时间:2017-02-27 18:52:26

标签: android drawerlayout navigationview

我自己无法找到答案或弄清楚的简单问题。

如果NavigationView打开时,我怎么能始终在其“原始”滚动位置上启动,因此无论先前滚动位置的位置如何,第一个菜单项始终可见。

我试过这个没有成功:

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

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

    ...
});

感谢。

2 个答案:

答案 0 :(得分:4)

在检查了NavigationView小部件的View层次结构之后,它由一个扩展了RecyclerView的NavigationMenuView组成,所以使用这个我已经想出了这个shenanigan:

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

答案 1 :(得分: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