Action Bar使用方法 - Android活动栏(一)-阿里云开发者社区

开发者社区> 一叶飘舟> 正文

Action Bar使用方法 - Android活动栏(一)

简介:
+关注继续查看
 在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。

  Action Bar主要功能包含:

  1. 显示选项菜单
  2. 提供标签页的切换方式的导航功能,可以切换多个fragment.
  3.  提供下拉的导航条目.
  4. 提供交互式活动视图代替选项条目
  5. 使用程序的图标作为返回Home主屏或向上的导航操作。
 
  首先我们一起来看下Action Bar代替传统Title的效果,下面一个平板应用的标题栏,是不是图标很大啊。

android action bar

    Android开发网提示在你的程序中应用ActionBar需要注意几点,SDK和最终运行的固件必须是Android 3.0即honeycomb,在androidmanifest.xml文件中的uses-sdk元素中加入android:minSdkVersion或android:targetSdkVersion,类似

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android123.cwj"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="honeycomb" />
    <application ... >
        ...
    </application>
</manifest>

  如果需要隐藏Action Bar可以在你的Activity的属性中设置主题风格为NoTitleBar在你的manifest文件中,Android123提示大家,下面的代码在3.0以前是隐藏标题,而在3.0以后就是隐藏ActionBar了,代码为

  <activity android:theme="@android:style/Theme.NoTitleBar"> 

  一、添加活动条目 Action Items

  对于活动条目大家可以在下图看到Android 3.0的标题右部分可以变成工具栏,下面的Save和Delete就是两个Action Items活动条目,如图

 android actionbar item

 下面是一个menu的layout布局文件代码

  <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_add"
          android:icon="@drawable/ic_menu_save"
          android:title="@string/menu_save"
          android:showAsAction="ifRoom|withText" />
</menu>

 而其他代码类似Activity中的Menu,比如

  @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            // 当Action Bar的图标被单击时执行下面的Intent
            Intent intent = new Intent(this, Android123.class);
            startActivity(intent);
            break;
    }
    return super.onOptionsItemSelected(item);
}

对于ActionBar的创建,可以在你的Activity中重写onStart方法

 @Override
protected void onStart() {
  super.onStart();
  ActionBar actionBar = this.getActionBar();
  actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
}

 这里Android123提示大家,调用getActionBar方式在你的Activity的onCreate中时需要注意必须在调用了setContentView之后。

 二、添加活动视图 Action View

  对于Action View你可以自己定义视图,比如搜索视图,android.widget.SearchView控件,最终效果如下图:

actionbar actionview

  对于ActionView,我们可以在menu的布局文件使用中来自定义searchview布局,如代码

<item android:id="@+id/menu_search"
    android:title="Search"
    android:icon="@drawable/ic_menu_search"
    android:showAsAction="ifRoom"
    android:actionLayout="@layout/searchview" />

  也可以直接指定Android系统中的SearchView控件,那么这时menu"_search的代码要这样写

  <item android:id="@+id/menu_search"
    android:title="Search"
    android:icon="@drawable/ic_menu_search"
    android:showAsAction="ifRoom"
    android:actionViewClass="android.widget.SearchView" />

  大家注意上面的两种方法中一个属性是actionLayout制定一个layout xml布局文件,一个是actionViewClass指定一个类,最终调用可以在Activity中响应onCreateOptionsMenu方法映射这个menu布局即可。

  @Override
public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.options, menu);
  SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); 
  return super.onCreateOptionsMenu(menu);
}

 有关Action Bar的更多使用,我们在下一节 Action Bar使用方法 - Android活动栏(二) 中详细了解。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
艾伟:[一步一步MVC]第一回:使用ActionSelector控制Action的选择
本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时“...
691 0
Android开发学习之使用Toolbar实现不同的Fragment使用不同颜色的标题栏与状态栏
Android开发学习之使用Toolbar实现不同的Fragment使用不同颜色的标题栏与状态栏                                            先看效果图。
2296 0
Android Butterknife 8.4.0 使用方法总结
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/52983418 本文出自【赵彦军的博客】 前言 ButterKnife 简介 ButterKnife是一个专注于Android的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成。
929 0
在使用蓝牙接口,遇到IOS下正常,Android下不正常的简易处理方法
如果遇到以上的情况怎么办,先确定下在调试的时候是否打开了调试面板, 如果有打开请关闭调试面板看是否还有问题,目前在安卓上打开调试面板是会有影响到蓝牙接口的使用,从之前遇到过这些问题的统计中也确实是因为这个原因
238 0
当心!骗子正在使用Instagram进行银行诈骗活动
本文讲的是当心!骗子正在使用Instagram进行银行诈骗活动,据美国宾夕法尼亚州总检察长Josh Shapiro于本周二(6月6日)发布的新闻稿表示,Facebook所有的照片共享应用程序Instagram正被犯罪分子用作吸引人们加入银行诈骗活动的招募工具。
1421 0
自定义Application使用示例——几个Activity共同操作某个变量
MainActivity如下: package cn.testapplication; import android.os.Bundle; import android.
671 0
Xamarin.Android使用ZBar库扫描条码实现
首先要安装Xariman.Android。然后从https://github.com/yiyuanlu/zbar下载相应的zbar.jar和动态库文件。 首先需要使用Xariman.Android的Java Bindings Library功能,将zbar.jar变成.net调用的DLL文件。
1329 0
H5 Web App 的性能测试平台 : 使用 Frida 实现 AOP 拦截 hook Android 原生应用的方法
H5 Web App 的性能测试平台 : 使用 Frida 实现 AOP 拦截 hook Android 原生应用的方法 在做 App 上的 WebView 容器中的 H5 Web App 的性能测试平台的时候,用到了这个 Frida MIS (6).png 简单记录下。
1122 0
+关注
1635
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载