首先Menus包括: Option Menu, Contextual Menu, Popup Menu; 在Android2.3和Android 3.0 ,当创业Option Menu和Contextual Menu的形态是不同的,在Android3.0后,建立的Option Menu就会体如今ActionBar中;android
2.3的样子以下:
api
3.0以后就变成以下: app
若是你想要2.1以后支持androidBar,须要使用v7, ActionBarActivity, v4..app.FragmentActivity,而且在Manifest.xml中配置支持ActionBar的样式ide
<activity android:theme="@style/Theme.AppCompat.Light" ... >
Option Menuui
// 这个方法,在android2.3以前,是显示底部,前最多显示6个,超过6个,显示更多,可是3.0后,就显示在ActionBar上面了, 也就是ActionBar onCreateOptionsMenu(): 通常只建立一次 onOptionsItemSelected: onPrepareOptionsMenu(): 2.3每次呼出前都执行一次, 3.0使用invalidateOptionsMenu()激发修改Menu
Contextual Menusthis
onCreateContextMenu() onContextItemSelected()
2.3以前是左边的样子, 3.0以后是右边的样子(须要设置ActionModel) code
getActivity.startActionMode(ActionMode.callback)
使用场景在listView和GridView中比较多; listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL)xml
API level 11 , android 3.0htm
public void showPopup(View v) { PopupMenu popup = new PopupMenu(this, v); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.actions, popup.getMenu()); popup.show(); } onMenuItemClick()
Menu Goup
一组menu, 单选模式,多选模式,
SplitActionBar(和Menu就没什么关系了,也是一种ActionBar)
在屏幕的底部, 最低api 14, 也能够支持老版本,固然是7之后的
AddActionView
yourapp:actionViewClass="android.support.v7.widget.SearchView"
能够收缩的ActionView, 须要最后面那个Button, 如图所示的3位子
ActionProvider
yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"
Navigation Tabs
ActionBar.newTab()
Drop-Down Navigation
setNavigationMode(NAVIGATION_MODE_LIST) SpinnerAdapter, actionBar.setListNavigationCallbacks()
ActionBar自定义样式