Toolbar和Actionbar需要注意的一些问题
来源:互联网 发布:单片机简易电子琴c语言 编辑:程序博客网 时间:2024/04/29 19:36
我们都知道Toolbar是用来代替Actionbar的,但是有些问题需要注意一下
不想显示Actionbar有两种方式,第一种是将主题设置成NoActionbar,第二种是在代码中将其隐藏,这两种方式在使用Toolbar时是有所不同的
首先说第一种。将主题设置成NoActionbar时,页面是没有Actionbar的,所以即使我们重写了onCreateOptionsMenu()方法,也是不会执行的。这是,我们将Toolbar写到布局文件中代替Actionbar,如果不进行setSupportActionBar(toolbar);的设置,onCreateOptionsMenu()方法也不会执行。因此可以得出结论,如果希望执行onCreateOptionsMenu()的方法,不管是那种bar,必须存在。
onOptionsItemSelected()方法也会响应item的点击事件,效果相当于toolbar.setOnMenuItemClickListener,两者都有的话,后者会把前者屏蔽掉。同理,如果不进行setSupportActionBar(toolbar);的设置,onCreateOptionsMenu()也不会响应,但是不影响toolbar.setOnMenuItemClickListener。
可以这样理解,当我们设置了setSupportActionBar(toolbar);后,Toolbar就接管了Actionbar的功能,我们可以按照Actionbar的方式,在onCreateOptionsMenu()中inflate菜单:getMenuInflater().inflate(R.menu.toolbarmeni,menu),在onOptionsItemSelected()中响应点击事件,也可以用自己的方法;如果不想设置,就只能用自己的方式inflate菜单和设置点击事件。
然后是第二种,用getSupportActionBar().hide();将Actionbar隐藏掉。
此时Actionbar还是存在的,只是被隐藏了,如果我们设置setSupportActionBar(toolbar);时会发现项目崩掉了,因为已经有了一个bar,再设置一个就会出错。如果不隐藏,同时又使用了toolbar,运行会发现有两个bar。
此时,上文提到的两个重写方法肯定会执行,点击事件响应的是Actionbar,因为Actionbar还没有退位,Toolba也没法设置进来。所以如果要使用Toolbar,就只能是使用Toolbar自己的各种方法了。
- Toolbar和Actionbar需要注意的一些问题
- 关于Toolbar和ActionBar的一些坑
- 关于ToolBar和Actionbar左上角返回箭头的问题
- JSP中一些需要注意和经常忘记的问题
- JavaScript一些需要注意的问题和技巧
- 安装Windows和Linux双系统需要注意的一些问题
- XHTML MP 需要注意的一些问题
- 使用IOCP需要注意的一些问题
- SQL需要注意的一些问题
- Css中需要注意的一些问题
- W3C需要注意的一些问题
- C语言需要注意的一些问题
- C++程序员需要注意的一些问题
- 编程需要注意的一些问题
- 上线app需要注意的一些问题
- 使用ViewStub需要注意的一些问题
- VC.NET 需要注意的一些问题
- vector使用需要注意的一些问题
- 树状数组求逆序对
- (转)Qt 的线程与事件循环
- JN-UG-3116 JN51xx Core Utilities User Guide_20170817
- 关于robotframework,app,appium的xpath定位问题及常用方法
- docker安装
- Toolbar和Actionbar需要注意的一些问题
- lake counting---dfs(深度搜索算法)
- autoitlibrary安装失败
- Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
- Servlet必须掌握的基础知识
- 多维数组
- 常见sql技巧 优化
- 算法学习笔记5-递归方法写一个全排列
- jzoj5290 【NOIP2017提高组A组模拟8.17】行程的交集 (树上路径交,dfs序+树状数组维护姿势)