ActionBar导航功能使用介绍

显示和隐藏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回调,
     在这个回调中定义当用户选择列表中一个项目时所发生的行为
     实现onNavigationItemSelected (int itemPosition,long itemId)
步骤3:用setNavigationMode()方法该操作栏启用导航模式
      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)
步骤4:用setListNavigationCallbac ks()方法给下拉代表设置回调方法
      anctionBar.setListNavigationCallbac ks

(mSpinnerAdapter,mNavigationCallback)


ActionBar的Tab导航(ActionBar导航之一)


当屏幕足够宽时,导航选项标签会被放到主操作栏中
当屏幕太窄的时候,选项标签会被放到分隔横条中

使用Tab导航时,一般结合Fragment使用,当选择一个导航标签后,切换一个新

的Fragment

实现步骤
1.实现ActionBar.TabListener接口。
   这个接口中回调方法会响应选项标签上的用户事件,能够切换Fragment对象
2.对每隔要添加的选项标签,都实例化一个ActionBar对象。
   并调用setTablistener方法设置监听器
   可以用setText或setIcon方法设置选项标签的标题或图标
3.通过调用addTab方法,把每隔选项标签添加到操作栏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值