【问题标题】:Reset NavigationView scroll重置 NavigationView 滚动
【发布时间】:2017-02-27 18:52:25
【问题描述】:

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

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

我试过这个没有成功:

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

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

    ...
});

谢谢。

【问题讨论】:

    标签: android drawerlayout navigationview


    【解决方案1】:

    在检查 NavigationView 小部件的视图层次结构之后,它由一个扩展 RecyclerView 的 NavigationMenuView 组成,因此使用它我想出了这个恶作剧:

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

    【讨论】:

      【解决方案2】:

      如果您想在用户选择抽屉中的某个项目时更新抽屉项目。那么

      您应该刷新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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        • 2019-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多