【问题标题】:Hide Toolbar Home / Back button programmatically in Android?在Android中以编程方式隐藏工具栏主页/后退按钮?
【发布时间】:2020-01-17 19:48:13
【问题描述】:

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

supportActionBar?.setDisplayHomeAsUpEnabled(false)

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

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

toolbarMainActivity.menu.findItem(R.id.home).isVisible = false

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

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

supportActionBar?.setDisplayHomeAsUpEnabled(false)

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

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

【问题讨论】:

    标签: android material-design android-toolbar android-appcompat material-components-android


    【解决方案1】:

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

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

    toolbar.setNavigationIcon(R.drawable....);
    

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

    toolbar.setNavigationIcon(null);
    

    您可以添加OnClickListener

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

    您可以使用androidx.appcompat.widget.Toolbar,也可以使用Material Components library 中包含的MaterialToolbar

    【讨论】:

    • 谢谢,成功了!但是现在 supportActionBar?.setDisplayHomeAsUpEnabled(true) 不再使按钮可见。我在哪里可以找到导航按钮的正确可绘制对象?
    • 在官方资料icons collection.
    【解决方案2】:

    试试这个解决方案 用于显示返回按钮

     if (getSupportActionBar() != null) {
                getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                getSupportActionBar().setHomeButtonEnabled(true);
            }
    

    用于隐藏返回按钮

    if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(false);
            getSupportActionBar().setHomeButtonEnabled(false);
        }
    

    【讨论】:

    • supportActionBar?.setDisplayHomeAsUpEnabled(false) 这个和kotlin一样但是getter方法。
    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 2017-10-28
    相关资源
    最近更新 更多