【Android】ToolBar设置NavigationIcon不显示异常或自定义失败异常

Android 之路 (8) - Toolbar - NavigationIcon间隙、Title居中、BackText 引言 原生的Toolbar的title是居右显示的,而大多数情况下UI设计的图title是居中。另外默认的返回按钮间隙是16dp,而设计图上面是按照iOS来设计,所以返回按钮是8dp,本篇就此进行适配。 正文 NavigationIcon间隙 先看看原来的样式,我这里为了演示,特地换了一个返回箭头。 修改BaseToolbarStyle 然后我们在原本定义号的BaseToolbarStyle中在... 阅读详情

异常:

在布局XML中设置android:navigationIcon=”@drawable/icon”或者在代码中设置都无法自定义成自己需要设置的NavigationIcon图片。
代码设置NavigationIcon如下:

Toolbar toolbar = (Toolbar)findViewById(R.id.my_toolbar);
toolbar.setNavigationIcon(R.drawable.icon);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);

解决办法:

如果你在XML布局中设置ToolBar设置NavigationIcon,那么现在需要放弃这种做法,否者始终无法显示出你设置的NavigationIcon,至于原因目前我还不知道,如果你知道的话,欢迎告诉我一下,万分感谢;
如果你在代码中设置的ToolBar的NavigationIcon,结果却还是没有显示你需要的NavigationIcon,那么你需要着重检查一下,你是否有 setSupportActionBar(toolbar); 这句代码,否者你在代码中对toolbar所做的设置是无法应用到ToolBar中的,另外很重要的一点就是:setSupportActionBar(toolbar); 必须在ToolBar初始化之后,setNavigationIcon()以及各种自定义ToolBar设置(例如:toolbar.setTitle("Title");)之前,否者同样无法将设置应用到ToolBar之上。
至于setSupportActionBar(toolbar);这句代码的作用,其实就是将你的ToolBar设置到ActionBar上,替换掉它。
正确代码如下(可以和异常中的代码比较一下):

Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);

toolbar.setNavigationIcon(R.drawable.icon);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);

参考链接:

http://stackoverflow.com/questions/26525229/toolbar-navigation-icon-never-set

Android自定义ActionBar实战:Toolbar与AppCompatActivity深度集成指南 ActionBar是Android系统对顶部操作区域的行为契约,而非过时的UI组件;其核心在于统一管理返回导航、菜单展开、状态栏集成与Fragment联动等生命周期行为。基于AppCompatActivity的getSupportActionBar()机制,Toolbar作为物理载体可无缝接入系统级能力,如onCreateOptionsMenu回调、无障碍支持及Material主题适配。这种‘契约抽象+物理实现’模式,显著提升多页面顶部栏的一致性、可维护性与可测试性,广泛应用于政务、金融、医疗等需长期迭代的 阅读详情

相关推荐

RV1106的ISP配置实战:MIPI与LVDS接口的硬件连接与设备树优化

本文详细解析了RV1106芯片的ISP配置实战,重点对比了MIPI CSI-2与LVDS两种主流接口的硬件连接方案与数据流差异。通过手把手的设备树代码示例,深入讲解了单路MIPI与双路LVDS摄像头的配置要点、关键属性设置及常见避坑指南,并提供了从驱动加载检查到Media Controller工具使用的系统化调试方法,帮助开发者快速打通图像采集与处理全链路。

terraform7cloud的博客 471

EasyAdmin列表页取消工具栏“添加”、“删除”按钮,取消“操作”列的“编辑”按钮

在对应的js文件中取消“add”、“delete”即可,如下所示:

ycs_0405的专栏 1690

三甲医院网络架构与安全建设实战

华为OceanStor] [华为OceanStor][PACS存储双活] [HIS数据库同步]患者隐私 数据脱敏 天清Web防火墙动态脱敏策略。主数据中心 --[OTV专线]-- 备数据中心。实现医疗业务网/卫生专网/互联网三网隔离。核心业务配置(华为CE6865)自动备份配置(每天02:00)安全事件响应(30分钟SLA)漏洞扫描(每周日00:00)实现医疗物联网统一接入管控。五、等保2.0合规关键配置。堡垒机登录(双因素认证)四、医疗物联网安全方案。

有小小的远大抱负 1911

【转】Toolbar总结

作者:Jlanglang 链接:https://www.jianshu.com/p/7b5c99e1cfa3 來源:简书 Toolbar包括以下5个方面 1.NavigationIcon 2.Logo 3.Title 4.subTitle 5.menu. 注意:getSupportActionBar()一定要在setSupportActionBar(Toolbar toolbar...

skyang在路上 333

利用HFSS仿真优化圆极化微带天线的耦合馈电设计

本文深入探讨了利用HFSS仿真软件优化圆极化微带天线性能的关键方法。通过对比传统直接馈电与耦合馈电方式,详细阐述了耦合馈电在提升阻抗匹配、改善轴比带宽及增强设计鲁棒性方面的显著优势。文章结合FR4板材的实战案例,逐步演示了在HFSS中建立模型、进行参数扫描与圆极化性能优化的完整流程,为设计高性能、高纯度的圆极化天线提供了实用指南。

weixin_29233333的博客 547

DIY等离子环:从Class-E电路到七彩辉光,手把手教你打造炫酷科学玩具

本文手把手教你DIY一个炫酷的等离子环科学玩具。从解析等离子体辉光放电原理入手,详细介绍了核心的Class-E自激振荡电路设计、关键元件选型与参数计算,并提供了从物料准备、电路搭建、腔体密封到上电调试的全流程指南。通过调制电路或填充不同气体,还能实现七彩变换与交互效果,是学习高频电路与电磁场知识的绝佳实践项目。

weixin_29305337的博客 634

Android-自定义 ActionBar

Android 自带的顶部导航栏的自定义ActionBar 解析左侧 - NavigationIcon中间 - 可自定义的部分:右侧 - Menu结语 ActionBar 解析 理论上,actionBar 包含三部分,左侧的 NavigationIcon(也是用来唤醒侧 滑菜单的按钮),中间的 CustomView 部分,以及右侧的 Menu 部分。每一部分需要使用 不同的方式进行自定义。 左侧 - NavigationIcon 调用 appBarMain.toolbar 的 setNavigationI

weixin_43536737的博客 2021

从‘包饺子’到‘包络线’:一个生活化比喻讲透长期与短期成本决策

本文通过饺子馆经营的生活化比喻,深入浅出地解析了长期与短期成本决策的核心逻辑。从调整人力(可变成本)到扩建厨房(固定成本),揭示了包络线理论在商业决策中的实际应用,帮助企业主在规模经济与成本控制间找到平衡点。

weixin_32006655的博客 338

关于easyadmin权限配置

/ {field: 'enterprise_id', title: '企业id'},{field: 'enterprise_name', title: '企业名称'},{field: 'activity.title', title: '活动名称'},{field: 'vote_number', title: '投票数'},auth: 'stock', //检测权限名称。text: '增加投票',title: '操作',1,在index.html 设置需要权限的放方法。

f897907070的博客 803

从零开始训练一个简单的CLIP

到这里,你已经基本了解了CLIP的基本原理,并且能够自己动手训练一个简单的CLIP模型。整体上来看,代码比较简单,但是已经基本覆盖到CLIP的整体训练流程了。另外,如果需要实际的落地,建议还是使用openclip等更加成熟的框架。欢迎关注github:https://github.com/taishan1994。

u012374012的专栏 2912

9.20华为OD机试真题 新系统 - 字符串分组求和 (Java/Py/C/C++/Js/Go)

9.20华为OD机试真题 新系统 - 字符串分组求和 (Java/Py/C/C++/Js/Go)

算法大师! 586

Autojs基础-用户界面(ui)

脚本开发需要有界面与用户进行交互,许多脚本开发语言已经有自己的ui控件的使用方式,比如按键精灵的ui界面设置非常便捷。按键精灵的ui控件的取值和赋值方式都已经封装好了,但是autojs很多时候只提供控件,取值和赋值需要自己通过安卓进行封装,甚至需要自己手搓控件功能。以游戏为例,会有各种任务,我们可以根据选择的任务运行脚本,最好的就是多选框单选的方式,这样比较好看。但是,autojs没有让多选框单选的方式,我们又无法保证用户每次只选择一个任务,我们就需要手搓这个功能。

qq_55896432的博客 1868

Windows安装 OpenClaw详细教程(使用wsl2+ubuntu)

OpenClaw 是一款于 2026年1月 正式对外开源的个人AI助手平台(AI Agent),由 PSPDFKit 创始人彼得·斯坦伯格(Peter Steinberger) 开发。它不仅仅是一个聊天机器人,更是一个能够主动执行任务的“数字管家”。OpenClaw的核心特点是本地化部署、隐私可控以及强大的自动化执行能力。OpenClaw 项目在开发过程中经历过两次更名,最终定为现名:初名:Clawdbot(因与 Claude 名称过于相似引发侵权争议而改名)。

猿小白的博客 1007

NavigationIcon设置点击监听

/** * 设置NavigationIcon图标点击监听方法有两种 * 1.setSupportActionBar(toolbar); * toolbar.setNavigationOnClickListener(this); * 方法1需要注意的是必须放在setSupportActionBar方法之后。 * *2.在onOptionsItemSelected方法中判断 * if(i

dxy978608510的博客 3493

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android Toolbar 如何设置navigationIcon app:tint

Android Toolbar 如何设置navigationIcon app:tint

GGGL的专栏 285

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android-2-控件使用

一.常用控件的属性 字符串的内容,在strings.xml中定义好 颜色的,在colors.xml中定义好 1.TextView (1)id 控件的名字 (2)text:显示的文本内容 (3)textColor:#000000,前两位表示透明度,FF表示不透明,后面6位,每2位显示一个,分别是红绿蓝 (4)textSize:sp,和屏幕大小相适配 (5)textStyle:字体的样式,如blod(粗体),italic(斜体),bolditalic(粗斜体) (6)background:控件的背景颜.

qq_42759120的博客 592

ToolBar、ActionBar与Menu的纠葛(以及navigationIcon、setHomeButtonEnabled、setDisplayHomeAsUpEnabled)...

因为贴图的繁琐。。。所以下面是无图版。。。完整的在这里: 探究一下toobar和actionbar在使用menu时的吊诡情况 一、背景介绍 toolbar最近比较火,而且是出出来代替actionbar的,但是目前还没有完全代替 但其实actionbar也是在Android 3.0(API 11)中才加入到SDK中的,也并不古老 更早的还有tittle bar(不带menu...

weixin_30319153的博客 227

Android - toolbar 优化 title修改边距和navigation icon修改padding值

1.修改title 边距修改边距使用系统的app属性来引入使用,即: xmlns:app="http://schemas.android.com/apk/res-auto"比如:<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id

原小明 1万+

EasyAdmin 控制器自定义方法,自定义模板头部

在对应的方法内加入下面一句: $this->layout && $this->app->view->engine()->layout(false); 完整代码类似如下: /** * @NodeAnotation(title="添加") */ public function add2() { //取消模板布局“layout/default”,文件路径“app\admin\view\layout\default.h.

ycs_0405的专栏 1738

Android studio笔记:工程介绍和控件(Toolbar)

app:navigationIcon是用来设置图标,我们一般是弄一个返回箭头。DarkActionBar我们一般修改为NoActionBar,自己设置。android:gravity="center"这个是设置不了的,要用。为什么我们要用toolbar就是因为我们可以能灵活的使用。也可以通过java的方式设置。

薛定谔的猫 675

Android Toolbar控件

1. Toolbar类 Toolbar是替代ActionBar的产物,低版本可以使用v7兼容包,使用Theme.AppCompat主题,并添加配置。 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;item name=&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;windowActionBar&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quo

假装你是大灰狼的专栏 3536

安卓开发toolbar设置logo_android:ToolBar详解(手把手教程)(2)

4.控件 (component)本阶段将从toolbar_demo_checkpoint2接续,在还未于 标签中,自行添加元件的 toolbar 有几个大家常用的元素可以使用,请先见下图:大抵来说,预设常用的几个元素就如图中所示,接着就依序来说明之:1. setNavigationIcon即设定 up button 的图标,因为 Material 的介面,在 Toolbar这里的 up...

weixin_40003767的博客 407

toolbar的一些属性说明

在上一篇使用toolBar作为标题栏并使状态栏透明已经使用toolbar作为标题栏,现在再记录一些toolbar的常用属性说明。       1.设置导航图标(左边的图标,常用于返回按钮)       mToolbar.setNavationIcon(R,mipmap.ic_launch);//设置图标,可根据需求自行设置        //在xml中设置系统的导航图标 too

meijing11的博客 4486

toolbar 修改默认图标两种方式

最近我在写侧滑菜单的时候,侧滑菜单写好了,但是toolbar上的图标跟我设置的不太一样, 如图: 我在布局里设置了自己的图标,但是在手机上显示的是默认黑色的图标。显然设置失败 Toolbar用 setNavigationIcon() 修改左侧图标为自己的图标无效的原因: 并非setNavigationIcon()是无效的。是因为放置这段代码位置的问题。 1、因为我这个是有侧滑菜单的,关联了Dra...

weixin_44043199的博客 1499

Android App开发 Toolbar和侧边导航栏

Android app 开发 侧边导航栏 、 toolbar的基础入门使用

weixin_43522377的博客 3895

Activity在顶部自定义返回箭头并对NavigationIcon设置点击返回事件

Activity在顶部自定义返回箭头并对NavigationIcon设置点击返回事件。

KI的博客 10万+
上一篇: 【Android】Error:Execution failed for task ':app:mergeDebugResources'. > String index out of range: 0
下一篇: 【Android】java.lang.SecurityException: Permission Denial: starting Intent 应用启动失败异常
祝福
博客等级 码龄15年 263粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值