ActionBar(2)基本操作:添加,去除ActionBar以及为ActionBar添加item

添加ActionBar:


1)     在实际应用开发者中,不需要导入ActionBar,因为在android3.0或者以上的版本中,ActionBar已经默认的包含在Activity中。

2)     从android3.0开始,ActionBar被包含在所有使用Theme.Holo主题的Activity中。

3)     当android:minSdkVersion或者android:targetSdkVersion属性被设置成11或者更高时,应用会被认为是android3.0版本(默认含有ActionBar)

4) 通过设置ActionBar的serDisplayShowHomeEanbled(false)和setDisplayShowTitleEanbled(fasle)禁用操作栏的图标和标题;

 

去除ActionBar:

 

1)     如果需要在自己开发的Acitivity中无操作栏,可以通过把主题设置为Theme.Holo.NoActionBar去除掉ActionBar,如:

<activity android:theme=”@android:style/Theme.Holo.NoActionBar”>

2)     同时也可以通过代码调用其hide()方法来实现,如下:

getActionBar.hide()当操作栏隐藏时,系统会调整Activity来填充当前有效的屏幕空间,可以通过getActionBar.show()来再次显示操作栏。

 

添加Action Item:

 

用户可以通过菜单栏中的操作项直接访问所需资源,操作项能够包含一个图标或文本标题。如果一个菜单项不能作为一个操作项显示,那么系统就会把它放到溢出菜单中。用户可以通过点击溢出菜单按钮显示其余的菜单。

可以这么理解,Action Item其实就是之前的旧版本中的MenuItem,只不过把它整合到ActionBar中了。所以,当系统首次启动时,系统会调用onCreateOptionsMenu()方法给Activity的ActionBar添加操作栏和溢出菜单。

通过代码添加操作栏:

    在Activity中重写onCreateOptionsMenu(Menu menu)方法:

   我们知道,菜单项是有图标和文本标题的,在代码中,通过setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM)请求把一个菜单项作为一个操作项来显示。用这种方式,只有在有效的空间时,菜单项才能显示在操作栏中。如果没有足够的空间,这个菜单项会显示在溢出菜单中。

   如果你的菜单项支持标题和图标,那么默认情况下,操作项仅显示图标。如果你要显示文本标题,就要添加如下属性setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM|MenuItem.SHOW_AS_ACTION_WITH_TEXT)

    注:MenuItem.SHOW_AS_ACTION_WITH_TEXT值示意操作栏要显示文本标题。操作栏会尽可能的显示这个标题,但是,如果图标有效并且受到操作栏空间的限制,文本标题有可能显示不全。

   通过加载xml文件添加操作栏:

     在Activity中重写onCreateOptionsMenu(Menu menu)方法:

     

    menus.xml文件代码:

     

   在xml文件中,同样可以通过给<item>元素声明android:showAsAction=””(如android:showAsAction=”ifRooms”)属性实现操作项的属性(代码中通过setShowAsAction()方法设置)。

   当用户选择一个菜单时。Activity会接收一个onOptionsItemSelected()回调,要把android:id属性支持的ID传递给这个方法。

   给每个菜单项定义android:title属性是至关重要的,即使你没有给操作项声明标题,原因如下:

a)     如果操作栏中没有足够的空间来显示操作项,那么菜单项就会显示在溢出菜单中,并仅显示标题

b)     屏幕阅读器要给视障用户朗读菜单项标题;

c)     如果仅用图标来显示操作项,那么,用户能够长按这个项目,用操作项的标题来显示提示信息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值