您好,欢迎访问三七文档
Android3.0中ActionBar的新特性2011-03-12ActionBarActionBar•ActionBar(活动栏)替代了显示在屏幕顶端的标题栏。主要负责显示菜单,widget,导航等功能,主要包括–显示选项菜单中的菜单项到活动栏;–添加可交互的视图到活动栏作为活动视图;–使用应用的图标作为活动项,代表返回home或者向上等重要操作;–提供标签导航,方便不同的Fragment之间切换;–提供下拉导航功能。ActionBarAndroid3.0针对ActionBar新增的类及接口如下:–ActionBar–ActionBar.LayoutParamsandroid:layout_gravity:设置控件本身相对于父控件的显示位置。(而android:gravity:设置的是控件自身上面的内容位置)–ActionBar.OnMenuVisibilityListeneronMenuVisibilityChanged(booleanisVisible)–ActionBar.OnNavigationListeneronNavigationItemSelected(intitemPosition,longitemId)–ActionBar.Tab–ActionBar.TabListenerActionBar•onTabReselected(ActionBar.Tabtab,FragmentTransactionft)•onTabSelected(ActionBar.Tabtab,FragmentTransactionft)•onTabUnselected(ActionBar.Tabtab,FragmentTransactionft)导航的三种显示模式:•NAVIGATION_MODE_STANDARD•NAVIGATION_MODE_LIST•NAVIGATION_MODE_TABSActionBar具体功能的实现•隐藏、显示、删除活动栏•添加活动项到活动栏•添加可交互的视图到活动栏作为活动视图•使用应用的图标作为活动项,代表返回home等操作•提供标签导航,方便不同的Fragment之间切换•提供下拉导航功能•定制活动栏隐藏、显示、删除活动栏•隐藏、显示、删除活动栏ActionBaractionBar=getActionBar();actionBar.hide();//actionBar.show();//显示活动栏•删除活动栏activityandroid:theme=@android:style/Theme.Holo.NoActionBar添加活动项到活动栏•添加活动项到活动栏•利用menu目录下的布局文件,对于你想添加的每个活动项,你必须添加一个菜单项到选项菜单,并设置菜单项作为活动项;例如下图的xml布局:添加活动项到活动栏•menuxmlns:android=:id=@+id/menu_saveandroid:icon=@drawable/ic_menu_saveandroid:title=@string/menu_saveandroid:showAsAction=ifRoom|withText///有四种属性,ifRoom、never、withText、always添加活动项到活动栏•2.直接在Activity里的onCreateOptionsMenu里实现,如:publicbooleanonCreateOptionsMenu(Menumenu){menu.add(Normalitem);MenuItemactionItem=menu.add(Save);actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);actionItem.setIcon(android.R.drawable.ic_menu_save);returntrue;}添加活动项到活动栏•响应事件的调用和OptionsMenu的一样,都是publicbooleanonOptionsItemSelected(MenuItemitem)添加可交互的视图到活动栏你可以把widget作为活动项添加到活动栏(如下图),有两种方式实现;•第一种是通过布局文件;itemandroid:id=@+id/menu_searchandroid:title=Searchandroid:icon=@drawable/ic_menu_searchandroid:showAsAction=ifRoomandroid:actionLayout=@layout/searchview/添加可交互的视图到活动栏•第二种是通过指定活动视图的全修饰名,即包名和类名;itemandroid:id=@+id/action_searchandroid:title=@string/action_bar_searchandroid:icon=@android:drawable/ic_menu_searchandroid:showAsAction=alwaysandroid:actionViewClass=android.widget.SearchView/使用应用的图标作为活动项•由于活动栏默认情况下,左边是应用的图标,接着是Activity的标题,我们可以利用它来处理一些经常且关键的操作,默认情况下应用的图标设置ID为android.R.id.home.publicbooleanonOptionsItemSelected(MenuItemitem){switch(item.getItemId()){caseandroid.R.id.home:Intentintent=newIntent(this,ActionBarDemo.class);startActivity(intent);break;}returnsuper.onOptionsItemSelected(item);}标签导航•活动栏可以显示标签,允许用户在不同的fragment之间切换。1.确定布局中包含有tab关联的fragment的视图;2.创建一个对ActionBar.TabListener的实现,并实现onTabSelected(Tabtab,FragmentTransactionft),onTabUnselected(),andonTabReselected()方法;3.在setContentView方法之后得到ActionBar,并设置导航模式为NAVIGATION_MODE_TABS.标签导航•finalActionBaractionBar=getActionBar();•actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);4.通过newTab()创建tab。5.通过addTab()添加每一个tab到actionbar.•FragmentartistsFragment=newArtistsFragment();actionBar.addTab(actionBar.newTab().setText(R.string.tab_artists).setTabListener(newTabListener(artistsFragment)));下拉导航1.利用下拉选择项和布局,构建SpinnerAdapter。•SpinnerAdaptermSpinnerAdapter=ArrayAdapter.createFromResource(this,R.array.action_list,android.R.layout.simple_spinner_dropdown_item);2.实现ActionBar.OnNavigationListener,来记录用户选择list中项目的行为。•publicbooleanonNavigationItemSelected(intposition,longitemId)3.设置导航模式为ActionBar.NAVIGATION_MODE_LIST•ActionBaractionBar=getActionBar();•actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);下拉导航4.设置回调函数setListNavigationCallbacks()•actionBar.setListNavigationCallbacks(mSpinnerAdapter,mNavigationCallback);定制活动栏•setDisplayUseLogoEnabled(booleanuseLogo),由于应用的logo含有更多的信息,是否用应用的logo替换应用的图标。•setBackgroundDrawable(Drawabled),thedrawableshouldbeNine-patchimage,ashape,orasolidcolor,sothesystemcanresizethedrawablebasedonthesizeoftheActionBar(youshouldnotuseafixed-sizebitmapimage).•android:actionBarTabStyle(StylefortabsintheActionBar)•android:actionBarTabBarStyle(StyleforthebarthatappearsbelowtabsintheActionBar)•android:actionBarTabTextStyle(Styleforthetextinthetabs)定制活动栏•android:actionDropDownStyle(Styleforthedrop-downlistusedfortheoverflowmenuanddrop-downnavigation)•android:actionButtonStyle(StyleforthebackgroundimageusedforbuttonsintheActionBar)•TheActionBarhastwostandardthemes,darkandlight.Thedarkthemeisappliedwiththedefaultholographictheme,asspecifiedbytheTheme.Holotheme.
本文标题:ActionBar
链接地址:https://www.777doc.com/doc-4052749 .html