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