Android 修改ActionBar样式
来源:互联网 发布:淘宝店铺转让合法吗 编辑:程序博客网 时间:2024/06/05 16:25
直接在主题中自定义就行
<style name="AppBaseTheme" parent="android:Theme.Light"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionBarStyle">@style/myActionBarStyle</item> </style> <style name="myActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">@color/application_main_color</item> <item name="android:titleTextStyle">@style/AcBar_titleStyle</item> </style> <style name="AcBar_titleStyle"> <item name="android:textColor">@color/white</item> </style>
可以修改ActionBar背景颜色,字体颜色,字体大小等等。
添加和移除Action Bar
1、在xml文件中直接设置NoActionBar2、getActionBar().hide();
修改Action Bar的图标和标题
默认情况下,系统会使用<application>或者<activity>中icon属性指定的图片来作为ActionBar的图标,但是我们也可以改变这一默认行为。如果我们想要使用另外一张图片来作为ActionBar的图标,可以在<application>或者<activity>中通过logo属性来进 行指定。比如项目的res/drawable目录下有一张weather.png图片,就可以在AndroidManifest.xml中这样指定。修改标题,xml中设置label。
showAsAction则指定了该按钮显示的位置,主要有以下几种值可选:always表示永远显示在ActionBar中,如果屏幕空间不够则无法显示,ifRoom表示屏幕空间够的情况下显示在ActionBar中,不够的话就显示在overflow中,never则表示永远显示在 overflow中。
响应Action按钮的点击事件
当用户点击Action按钮的时候,系统会调用Activity的onOptionsItemSelected()方法,通过方法传入的MenuItem参数,我们可以调用它的getItemId()方法和menu资源中的id进行比较,从而辨别出用户点击的是哪一个Action按钮
这里我们重写了一个onMenuOpened()方法,当overflow被展开的时候就会回调这个方法,接着在这个方法的内部通过返回反射的方法将MenuBuilder的setOptionalIconsVisible变量设置为true就可以了。
通过Action Bar图标进行返回
可以通过调用setDisplayHomeAsUpEnabled()方法来启用ActionBar图标返回功能
它的按钮Id是R.id.home
添加Action View
为了声明一个ActionView,我们可以在menu资源中通过actionViewClass属性来指定一个控件,例如可以使用如下方式添加SearchView:<menu xmlns:android=“http://schemas.android.com/apk/res/android” > <item android:id=“@+id/action_search” android:icon=“@drawable/ic_action_search” android:actionViewClass=“android.widget.SearchView” android:showAsAction=“ifRoom|collapseActionView” android:title=“@string/action_search” /> …… </menu>
让Overflow中的选项显示图标
Google认为隐藏在overflow中的Action按钮都应该只显示文字。当然,如果你认为这样不够美观,希望在overflow中的Action按钮也可以显示图标,我们仍然可以想办法来改变这一默认行为。其实,overflow中的Action按钮应不应该显示图标,是由MenuBuilder这个类的setOptionalIconsVisible方法来决定的,如果我们在overflow被展开的时候给这个方法传入true,那么里面的每一个Action按钮对应的图标就都会显示出来了。调用的方法当然仍然是用反射了,代码如下所示:@Overridepublic boolean onMenuOpened(int featureId, Menu menu) {if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {if (menu.getClass().getSimpleName().equals("MenuBuilder")) {try {Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);m.setAccessible(true);m.invoke(menu, true);} catch (Exception e) {}}}return super.onMenuOpened(featureId, menu);}
这里我们重写了一个onMenuOpened()方法,当overflow被展开的时候就会回调这个方法,接着在这个方法的内部通过返回反射的方法将MenuBuilder的setOptionalIconsVisible变量设置为true就可以了。
0 0
- Android 修改ActionBar样式
- Android ActionBar,样式修改,常见问题
- android中actionbar样式修改
- Android 开发------------------ 修改 Actionbar 的样式
- Android Actionbar学习笔记(三)-----修改Actionbar的样式
- Android Actionbar学习笔记(三)-----修改Actionbar的样式
- Android Actionbar学习笔记(三)-----修改Actionbar的样式
- Android Actionbar学习笔记(三)-----修改Actionbar的样式
- Android Actionbar学习笔记(三)-----修改Actionbar的样式
- 修改Actionbar的样式
- ActionBar修改样式
- ActionBar样式修改
- 修改actionBar的样式
- 修改ActionBar样式小结
- Android actionbar在Material主题中修改样式
- 【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改
- android ActionBar自定义样式
- android actionbar 自定义样式
- 在MyEclipse中设计一个实体关系图
- 硕果累累——2014年终总结
- ORACLE to_char() 函数获取自然周数
- 高效环保节能的中空玻璃门窗生产设备简介
- Oracle 字符集的查看和修改
- Android 修改ActionBar样式
- 电脑录音机无法找到录音设备
- gem 源
- Java包装类、拆箱和装箱详解
- centos5.11 6.6中关于编译安装percona server 5.5.42的疑问
- #include<a.h>和#include"a.h"的区别
- oracle表里每条记录的大小
- Oracle undo 管理
- Javascript错误处理