显示和隐藏ActionBar
在清单文件的Application中设置整个项目的主题
在清单文件的Activity中设置单个窗体的主题
android:theme="@android:style/Theme.Holo.NoActionBar"隐藏ActionBar
代码控制ActionBar的显示和隐藏
ActionBar bar = getActionBar()//获得ActionBar的对象
bar.show()
bar.hide()
给ActionBar增加动作项
把应该在ActionBar中显示的菜单项作为一个操作箱来声明。
操作项能够包含一个图标或文本标题。
悬浮菜单既可以通过设备的Menu按钮来显示,也可以在ActionBar中一个额外按
钮来显示
在MainActivity中重写两个方法控制组装ActionBar和悬浮菜单
onCreateOptionsMenu
onOptionsItemSelected()
在menu.xml文件中元素声明android:showAsAction="ifRoom"属性
该属性请求把一个菜单项作为一个操作项来显示。
这种方式,当ActionBar中有有效的空间时,菜单项才能显示在ActionBar中。
如果没有足够控件,这个菜单项会显示在悬浮菜单中。
菜单项带有标题和图标
android:title和android:icon属性
显示文本标题android:showAsAction属性添加withText设置
注意事项:
1.withText值示意ActionBar要显示文本标题。首空间限制
2.每个菜单都尽量设置title属性。如果没有足够空间,会放入悬浮菜单
3.android:showAsAction的值尽量不要选择always。ifRoom最佳
如果该Activity有托管Fragment,则Fragment也可以向ActionBar中添加操作项
但是必须在Fragment中调用setHasOptionsMenu(true),通知Activity有菜单要
添加
先执行Activity中的,再执行Fragment中的
使用分隔操作栏
在屏幕的底部会显示一个独立的横条,用于显示Activity在窄屏设备上运行时的
所有操作项。
启动分隔操作栏需要在清单文件的application或activity元素中添加
uiOptions=splitActionBarWhenNarrow
属性设置就可以了。
启用程序图标导航
将ActionBar的应用程序图标变成可点击的的图标
调用方法如下
setDisplayHomeAsUpEnable
d(true)
设置是否将应用程序图标转变成可点击的图标,并在图标上添加一个向左的箭头
setDisplayShowHomeEnable
d(false)
设置是否显示应用程序图标
setHomeButtonEnable(true)
设置是否将应用程序图标变成可点击的按钮
点击应用程序图标,相当于点击了一个id是android.R.id.Home的菜单项
返回桌面
如果要返回主Activity窗体,
应该在Intent对象中包括 FLAG_ACTIVITY_CLEAR_TOP标识,
如果要返回的Activity在当前任务中已经存在,堆栈中的覆盖在Activity上的所
有窗体都会被销毁,并且把要返回的这个窗体返回给用户,是一个回退动作。
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
使用ActionView自定义控件和布局
步骤1,在属性中定义
android:actionLayout 属性和android:actionViewClass属性来指定
android:actionViewClass="android.widget.SearchView"
步骤2,处理ActionView的动作
在onCreateOptionsMenu()方法中回调
通过菜单项Id的findItem()方法来获取菜单项
调用getActionView()方法操作视窗中的元素。
例
SearchView search = (SearchView)menu.findItem
(R.id.menu_search).getActionView()
ActionBar的下拉导航(ActionBar导航之一)
步骤1.创建一个给下拉提供可选项目的列表,以及描绘列表项目时所使用的布局
一般创建一个SpinnerAdapter,来提供ActionBar的下拉菜单的菜单项
步骤2:实现ActionBar.OnNavigationListerner回调,
步骤3:用setNavigationMode()方法该操作栏启用导航模式
步骤4:用setListNavigationCallbac
ks()方法给下拉代表设置回调方法
(mSpinnerAdapter,mNavigationCallback)
ActionBar的Tab导航(ActionBar导航之一)
当屏幕足够宽时,导航选项标签会被放到主操作栏中
当屏幕太窄的时候,选项标签会被放到分隔横条中
使用Tab导航时,一般结合Fragment使用,当选择一个导航标签后,切换一个新
的Fragment
实现步骤
1.实现ActionBar.TabListener接口。
2.对每隔要添加的选项标签,都实例化一个ActionBar对象。
3.通过调用addTab方法,把每隔选项标签添加到操作栏