【问题标题】:Navigation drawer not opening from cutom menu button导航抽屉未从自定义菜单按钮打开
【发布时间】:2016-05-12 22:33:53
【问题描述】:

我正在开发一个 Android 应用程序,那里有一个导航抽屉。由于导航抽屉工具栏不能透明,并且结尾的三点按钮图标不能更改,我选择隐藏该工具栏,并显示我的自定义布局。它将为我提供所需的所有功能。

但是我现在面临的问题是,一旦活动开始,如果我单击自定义菜单按钮,它就不会打开。一旦我拖动它并打开它,之后每当我单击菜单按钮时,它都会打开导航抽屉。

我可能缺少什么?这就是我正在做的事情,同时调试它甚至到了 else 部分,但没有打开。

在 BaseActivity 中:

drawer                  = (DrawerLayout) findViewById(R.id.drawer_layout);
    toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);


ivLeft.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (drawer.isDrawerOpen(Gravity.LEFT)) {
                drawer.closeDrawer(Gravity.LEFT);
            } else {
                drawer.openDrawer(Gravity.LEFT);
            }
        }
    });

在任何子活动中:

 toolbar.setVisibility(View.GONE);
    navigationView.setVisibility(View.GONE);

请帮忙..

【问题讨论】:

  • 听起来您在DrawerListener 方法之一中设置ivLeftOnClickListener。你到底在哪里调用你发布的代码块?
  • 实际上我有 Baseactivity 和子活动功能。此代码在我的 BaseActivity 中,以便所有子活动都可以使用相同的功能。 ivLeft 也是公开的。
  • 我们需要查看更多周围的相关代码。
  • 请在实际线程中检查编辑。
  • 事实上,在快速浏览DrawerLayout 的来源之后,我相信这可以解释您所描述的行为。尝试删除 navigationView.setVisibility(View.GONE); 行。

标签: android navigation-drawer


【解决方案1】:

问题的根本原因是您将抽屉View 的可见性设置为GONE。不过,您描述的奇怪行为的直接原因是DrawerLayout 及其帮助器类之一如何在抽屉状态更改时更新子Views。

您设置为打开和关闭抽屉的OnClickListener 工作正常。它似乎不是,因为抽屉ViewGONE。但是,当您通过拖动手动打开抽屉时,DrawerLayout 使用的 ViewDragHelper 正在触发一个回调方法,该方法将抽屉显式设置为 VISIBLE。以编程方式打开抽屉时不会触发此回调 - 即使用 openDrawer() 方法 - 这解释了为什么仅通过单击自定义切换按钮不显示抽屉。将抽屉打开一次后,抽屉View 可见,然后切换将按预期工作。

抽屉View默认处于关闭状态,无需隐藏,删除navigationView.setVisibility(View.GONE);行即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多