关于使用ActionBar要注意的几点<动态更新...>
2016-09-18 19:41
288 查看
1.参考博客:
a. http://blog.csdn.net/weihan1314/article/details/32142053(使用在activity中直接通过代码初始化ActionBar)
b. http://blog.csdn.net/afei__/article/details/51476096 (使用xml文件的形式初始化ActionBar)
c. http://blog.csdn.net/liu149339750/article/details/8282471(ActionBar的原理性解释)
2.自己通过验证发现的问题.
先是参考第一种方式进行的.但是在其中发现了问题:
A. 就是在代码中发现了.通过方法getActionBar()获取到的ActionBar是null.会导致下面使用时报空指针异常错误(NullPointeException).
参照博客:
a. http://www.tuicool.com/articles/ye2qQfu,尝试解决,但是没能实现.
b. http://blog.csdn.net/lincyang/article/details/46286895 ,结合ab一起使用,用getSupportActionBar()使正常获取到Actionbar(注意此处有个前提,activity必须是继承自有titleBar的activity,否则依然报错,此方法直接飘红,无法使用)程序正常跑起来了.actionBar也正常在标题栏所处的位置.但出现问题B.
B. ActionBar左右两侧各有一块空白无法覆盖,问题出现,继续解决问题.
参考博客:
a. http://blog.csdn.net/afei__/article/details/51476096 (使用了一部分,就是参照着将 activity中的 activitybar.setCustomView()关联上actionbar.xml文件),
但发现在actionbar.xml中得toolbar中通过属性app:contentInsetStart无法解决左右空白的问题.
又想通过能不能获取到actionbar的params的方式,通过设置参数的形式来再activity中解决问题.但没能找到actionBar对应的getParams()方法.
b 最终走向了使用xml文件初始化actionBar的方式.参照的参考博客1.b 直接将toolbar写在了activity直接setContentView的布局文件中(此处注意要将activity本身自有的titleBar清除掉). 最终将自定义的actionBar显现出来. 但是出现问题C
C.在自定义的ActionBar中又出现了上下有一块空白的问题.
如图:
最终还是发现了是layout_height存在问题.将layout_height更改为?android:actionbarsize解决问题.
更改前:
更改后:
3.总结.虽然最终将问题都解决了,但花费的时间过长
对次有以下想法:
a.对于问题,有现成博客的先抄过来<一字不改>,先试试能不能跑起来再说,别功能还没实现,就凭着自己的感觉到处“调整”,不知道可能就是你的调整会导致没有出现预想的结果.
b.a中的的道理明白,但到自己手上总不自觉的去改动一下东西.求助各位看客,怎么破?!!多谢了!
a. http://blog.csdn.net/weihan1314/article/details/32142053(使用在activity中直接通过代码初始化ActionBar)
b. http://blog.csdn.net/afei__/article/details/51476096 (使用xml文件的形式初始化ActionBar)
c. http://blog.csdn.net/liu149339750/article/details/8282471(ActionBar的原理性解释)
2.自己通过验证发现的问题.
先是参考第一种方式进行的.但是在其中发现了问题:
A. 就是在代码中发现了.通过方法getActionBar()获取到的ActionBar是null.会导致下面使用时报空指针异常错误(NullPointeException).
参照博客:
a. http://www.tuicool.com/articles/ye2qQfu,尝试解决,但是没能实现.
b. http://blog.csdn.net/lincyang/article/details/46286895 ,结合ab一起使用,用getSupportActionBar()使正常获取到Actionbar(注意此处有个前提,activity必须是继承自有titleBar的activity,否则依然报错,此方法直接飘红,无法使用)程序正常跑起来了.actionBar也正常在标题栏所处的位置.但出现问题B.
B. ActionBar左右两侧各有一块空白无法覆盖,问题出现,继续解决问题.
参考博客:
a. http://blog.csdn.net/afei__/article/details/51476096 (使用了一部分,就是参照着将 activity中的 activitybar.setCustomView()关联上actionbar.xml文件),
//自定义ActionBar final ActionBar actionBar = getActionBar(); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setCustomView(R.layout.actionbar);//自定义ActionBar布局
但发现在actionbar.xml中得toolbar中通过属性app:contentInsetStart无法解决左右空白的问题.
<android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="wrap_content" app:contentInsetStart="0dp" app:contentInsetEnd="0dp" app:contentInsetLeft="0dp" app:contentInsetRight="0dp"> </android.support.v7.widget.Toolbar>
又想通过能不能获取到actionbar的params的方式,通过设置参数的形式来再activity中解决问题.但没能找到actionBar对应的getParams()方法.
b 最终走向了使用xml文件初始化actionBar的方式.参照的参考博客1.b 直接将toolbar写在了activity直接setContentView的布局文件中(此处注意要将activity本身自有的titleBar清除掉). 最终将自定义的actionBar显现出来. 但是出现问题C
C.在自定义的ActionBar中又出现了上下有一块空白的问题.
如图:
最终还是发现了是layout_height存在问题.将layout_height更改为?android:actionbarsize解决问题.
更改前:
<android.support.v7.widget.Toolbar style="@style/CustomActionBarStyle" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.Toolbar>
更改后:
<android.support.v7.widget.Toolbar style="@style/CustomActionBarStyle" android:layout_width="match_parent" android:layout_height="?android:actionBarSize"> </android.support.v7.widget.Toolbar>
3.总结.虽然最终将问题都解决了,但花费的时间过长
对次有以下想法:
a.对于问题,有现成博客的先抄过来<一字不改>,先试试能不能跑起来再说,别功能还没实现,就凭着自己的感觉到处“调整”,不知道可能就是你的调整会导致没有出现预想的结果.
b.a中的的道理明白,但到自己手上总不自觉的去改动一下东西.求助各位看客,怎么破?!!多谢了!
相关文章推荐
- 关于使用<s:property value="">形式取得 数据库图片地址的注意事项
- 【工作日志】--关于Vue.js中<slot>的使用方法及注意事项
- 关于笔记本使用的几点注意事项
- 在Asp.net 2.0中关于menu和treeview的几点使用注意!
- <转>关于SQL Server数据库的若干注意事项
- SoapUI使用注意事项——在<!CDATA>节点之前不要有空格
- 关于使用RadioButton和CheckBox控件(Asp.net)生成html包含<label>控件的一点认识
- 关于怎样使用three.js的小教程<一>
- 使用::std::vector<>作为管理动态数组的优先选择
- java工具箱---最新更新(关于<a:support />放在某个标签中不可用)
- ABAP 筑基宝典(5) -- 关于使用READ TABLE语句的几点注意事项
- ASP.NET学习笔记[2] - 关于使用Master.Page的几点注意事项
- 关于delegate的简单使用说明<转载两篇>
- 关于使用READ TABLE语句的几点注意事项...(原文来源于网络)
- 关于使用<ajax:CascadingDropDown>控件出现的500错误和ScriptManager出现的注册表冲突错误解决方案
- Android中关于线程使用的几点注意事项
- struts2中,<s:action/>使用注意事项
- 关于sqlite数据库在使用过程中应该注意以下几点
- 使用DELETE ADJACENT DUPLICATES FROM <table>注意
- 关于在oracle中是使用索引的几点注意事项