在Android中以编程方式隐藏工具栏主页/后退按钮?

And*_*ole 4 android android-appcompat material-design android-toolbar material-components-android

我的应用程序有一个项目选择,就像 WhatsApp 一样,长按我可以选择多个项目来删除它们。一切正常,直到我需要一个按钮来清除选择。我想使用后退按钮(箭头)来清除选择,我希望后退箭头在点击后消失,但我找不到办法做到这一点。

supportActionBar?.setDisplayHomeAsUpEnabled(false)
Run Code Online (Sandbox Code Playgroud)

这将是第一个解决方案,但我认为它无法以编程方式隐藏按钮。

我也尝试这样做,因为我使用要删除的 bin 图标来执行此操作,但它不适用于后退箭头。

toolbarMainActivity.menu.findItem(R.id.home).isVisible = false
Run Code Online (Sandbox Code Playgroud)

我还尝试更改工具栏、appbar 布局和 menu_main.xml 文件中的值,但无法设置重力或强制图标到应用程序标题之前的后退箭头位置。

这适用于应用程序启动,但在将其设置为 true 后将其设置为 false 不会隐藏箭头,只会重新创建

supportActionBar?.setDisplayHomeAsUpEnabled(false)
Run Code Online (Sandbox Code Playgroud)

![1]: https://imgur.com/y5AgYde.jpg "工具提示"

我只想在按下后退按钮清除选择后隐藏它。

Gab*_*tti 5

如果您使用的是Toolbar,则可以使用它自己的导航图标 API。

您可以使用以下方法更改图标:

toolbar.setNavigationIcon(R.drawable....);
Run Code Online (Sandbox Code Playgroud)

在你的情况下,你可以使用:

toolbar.setNavigationIcon(null);
Run Code Online (Sandbox Code Playgroud)

您可以添加添加一个 OnClickListener

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
      @Override public void onClick(View view) {
        //...Do something
      }
    });
Run Code Online (Sandbox Code Playgroud)

您可以使用androidx.appcompat.widget.Toolbar或可以使用MaterialToolbar包含在材料组件库中的