添加ActionBar的支持


ActionBar Android3.0以后出现的特性。为了让低版本的Android支持ActionBar,google推出了相关的support包,现在通过support包,ActionBar现在可以支持Android2.1 以及以上版本,support包的名称是android-support-v7-appcompat.jar这个包需要结合android-support-v4.jar使用。android-support-v4.jar主要是为了方便低版本的Android系统使用Fragment以及ViewPager.

对于minSDK=7 的应用,如果要使用ActionBar,需要完成如下设置

1. Activity 继承于ActionBarActivity

获取ActionBar的方法是getSupportActionBar()

获取FragmentManager的方法是getSupportFragmentManager()

2.Activity 的主题使用Theme.AppCompat的设置,如

<style name="AppTheme"parent="Theme.AppCompat.Light.DarkActionBar">

<!-- Customize your theme here. -->

</style>

3.添加support

android-support-v4.jar

android-support-v7-appcompat.jar

对于minSDK>=11的应用,不需要做特别的设置。android.app.Activity已经添加了对ActionBar的支持,获取ActionBar的方法是getActionBar,EclispeAndroid-StudioIDE中,也默认添加了适合ActionBar的主题如

<style name="AppTheme"parent="android:Theme.Holo.Light.DarkActionBar">

<!-- Customize your theme here. -->

</style>

如果不想显示ActionBar.调用如下代码

getSupportActionBar().hide();

getActionBar().hdie();

ActionBar items是通过menu菜单的配置文件来实现的。一般放在res/menu 下面。也就是通过onCreateOptionsMenu()方法来实现,和菜单键的实现机制一样,具体的配置文件如下:

<menuxmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

tools:context="name.lushuai.android.client.application.ui.actionbar.compat.ActionBarCompatActivity">

<item android:id="@+id/action_settings"

android:title="@string/action_settings"

android:orderInCategory="100"

app:showAsAction="always" />

</menu>

Menu items需要注意属性andcroid:showAsAction,如果属性值为always”,那么items就会总是显示在ActionBar上,如果属值为ifRoom”,则表示,如果ActionBar上有足够的空间,那么items就会显示在ActionBar上。如果属性值设置为never”,那么items就会隐藏在overflow menu 里,点击物理菜单键或者over flow menu 这个items可以显示出来。

ActionBar items的响应事件需要通过onOptionsItemSelected方法来实现,这个和以前物理菜单键的响应事件的处理机制相同。

如果ActionBaritems是通过ActionView 或者ActionProvider来实现,那么items的响应事件则由具体的ActionView以及ActionProvider来实现。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值