首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重置NavigationView滚动

重置NavigationView滚动
EN

Stack Overflow用户
提问于 2017-02-28 02:52:26
回答 2查看 945关注 0票数 3

一个简单的问题,我自己找不到答案,也想不出答案。

如何让NavigationView在打开时始终从其“原始”滚动位置开始,这样无论先前滚动位置位于何处,第一个菜单项都始终可见。

我试过了,但没有成功:

代码语言:javascript
复制
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
    ...

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

    ...
});

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-01 19:23:49

在分析了NavigationView小部件的视图层次结构之后,它由一个扩展了RecyclerView的NavigationMenuView组成,因此我想出了这个小把戏:

代码语言:javascript
复制
((NavigationMenuView)((NavigationView)drawerView).getChildAt(0)).scrollToPosition(0);
票数 6
EN

Stack Overflow用户

发布于 2017-02-28 02:56:54

如果您希望在用户选择了抽屉中的某些项时更新抽屉项。然后

您应该在onItemClick中刷新listview的适配器。调用notifydatasetchange()以反映更改。但是,如果您希望如果用户选择了列表中的某一项,则在进行选择后关闭抽屉时,您希望更新列表,在本例中为

收听抽屉关闭事件-

代码语言:javascript
复制
public void onDrawerClosed(View view) {

// refresh adapter and call notify data set change.

}

请参阅此链接:https://developer.android.com/training/implementing-navigation/nav-drawer.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42493582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档