设为首页 加入收藏

TOP

自定义Actionbar
2015-07-24 05:51:41 来源: 作者: 【 】 浏览:5
Tags:定义 Actionbar

自定义Actionbar有两种方式:代码方式和xml方式

先说代码方式:

?

//getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ad_action_bar_gradient_bak));
//getSupportActionBar().setDisplayHomeAsUpEnabled(false);  设置不显示左边的Indicator,对应style:android:homeAsUpIndicator
//getSupportActionBar().setDisplayShowHomeEnabled(false);  设置不显示左边的HomeIcon
//getSupportActionBar().setDisplayUseLogoEnabled(true);

?

在代码中使用getActionBar().setDisplayShowHomeEnabled(false)不显示ActionBar的图标,但是在进入程序瞬间还是会闪现这个图标,该怎么写才好?

这个问题应该是没法避免的,应用android系统在初始化actiivty时,必然以默认的style来初始,然后才回到到activity的onCreate等个函数,你在onCreate里等于是重新设置actionbar的各个属性,必然有闪烁,所以:不要在在代码里设置actionbar的属性,体现在界面上,生效会延会有延时,出现闪现的现象,所以你看到这些示例代码都被我注释掉了

?

那有没有其他的解决方案?有,就是我们接下来要说的xml方式:

先说时候them的优先级,在AndroidManifest.xml中,如果application和activity同时指定了不同的android:theme=xxx,那么根据作用域的规则,activity的theme优先级就高于application,也就是说,如果遇到有冲突的styley定义,那么以activity定义的style为准。

AndroidManifest.xml:

?

注意,这里的StyledIndicators是actity的style(或者时候them,两者区别不大),这个styley让ActivityMain完全无视appliccation的theme

?

styles.xml:

?


  

注意,很多时候我们使用的是actionbarSherlock这个开源的acitonbar,没关系,一样可以自定义actionbar的样式,方法同上,没有区别。

可能有些地方用的还是不标准,还请各位指正。最后贴一张效果图:

data-cke-saved-src=https://www.cppentry.com/upload_files/article/49/1_67qgi__.png

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU 2112 HDU Today,最短路径算.. 下一篇hdu 2767 Proving Equivalences ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: