您的位置:首页 > 其它

关于使用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
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中的的道理明白,但到自己手上总不自觉的去改动一下东西.求助各位看客,怎么破?!!多谢了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  actionBar