gpt4 book ai didi

android - 抽屉导航未从自定义菜单按钮打开

转载 作者:行者123 更新时间:2023-11-29 19:50:30 24 4
gpt4 key购买 nike

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

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

我可能遗漏了什么?这就是我正在做的,同时调试它甚至进入 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);
}
}
});

在任何子 Activity 中:

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

请帮忙..

最佳答案

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

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

抽屉View默认处于关闭状态,所以你不需要隐藏它,你可以直接移除navigationView.setVisibility(View.GONE); 行。

关于android - 抽屉导航未从自定义菜单按钮打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com