首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android材料组件中更改工具栏返回按钮图标

如何在android材料组件中更改工具栏返回按钮图标
EN

Stack Overflow用户
提问于 2020-05-26 08:59:18
回答 2查看 4.2K关注 0票数 8

我想改变默认导航图标(后退按钮图标)到我的自定义图标。我不使用抽屉,只是一个简单的工具栏和材料组件。

这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-28 21:03:32

如果您正在使用Toolbar进行更改图标,只需使用:

代码语言:javascript
运行
复制
Toolbar toolbar = findViewById(R.id.xxx);
toolbar.setNavigationIcon(R.drawable.xxxx4);
setSupportActionBar(toolbar);

如果使用的是ActionBar,则可以使用:

代码语言:javascript
运行
复制
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.xxx);

您还可以在应用程序主题homeAsUpIndicator属性中更改它:

代码语言:javascript
运行
复制
  <style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
    <item name="homeAsUpIndicator">@drawable/...</item>
  </style>

如果您使用的是导航组件,目前还没有一种自定义HomeAsUpIndicator图标的方法,这是在非根目标上显示Up按钮的预期行为。

在安装方法和检查目标之后添加addOnDestinationChangedListener是一个解决办法。

类似于:

代码语言:javascript
运行
复制
navController.addOnDestinationChangedListener(
        new NavController.OnDestinationChangedListener() {
            @Override
            public void onDestinationChanged(@NonNull NavController controller, @NonNull NavDestination destination, @Nullable Bundle arguments) {
                if (destination.getId() == R.id.nav_xxx) {
                    //With ActionBar                        
                    //getSupportActionBar().setHomeAsUpIndicator(R.drawable.xxxx);

                    //With a Toolbar
                    toolbar.setNavigationIcon(R.drawable.xxxx);
                }
            }
        });

票数 10
EN

Stack Overflow用户

发布于 2020-06-04 10:37:58

如果您已经创建了一个工具栏并将其设置为ActionBar,如下所示

代码语言:javascript
运行
复制
toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)

在设置自定义图标时有两个选项:

选项1

代码语言:javascript
运行
复制
toolbar?.setNavigationIcon(R.drawable.homeNavigationIcon)

选项2

代码语言:javascript
运行
复制
supportActionBar?.setHomeAsUpIndicator(R.drawable.homeNavigationIcon)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62018283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档