1. Create a blank Android Project
创建一个空的Android项目。
a. 导入ActionBarCompat工程。
ActionBarCompat的source code位置是:<Android SDK目录>/extras/android/support/v7/appcompat‘
这样我们就得到一个名叫android-support-v7-appcompat 的library project
b. 接着在自己新建的project点击右键->选择Properties->选择Android选项

点Add, 然后选择 android-support-v7-appcompat

3. Update Style Resources

刚才说了ActionBarCompat在使用中会调用一些资源文件,尤其是基于Theme.AppCompat的主题(Theme)用来规范 Action Bar的显示。如果使用Action Bar的Activity没有使用基于Theme.AppCompat的主题,程序就不知道该如何配置Action Bar的显示,就会报错导致程序退出。

在AndroidManifest中讲Application的 android:theme属性设置为Theme.AppCompat系列Theme。

<application
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.AppCompat.Light">

如果你在使用自定义的Theme,则该Theme的parent应设置为Theme.AppCompat系列Theme.

<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/global_main_bg</item>
</style>

4. Extend ActionBarActivity
当要在Activity中使用ActionBar,并要求兼容Android 2.1~3.0之间的系统时,我们不能像往常那样extend Activity,而应extend ActionBarActivity(原因如上所属,Android 3.0以前的系统中Activity API里是没有ActionBar接口的 自然也就无法调用。为了向下兼容,必须使用ActionBarActivity)。

public class MainActivity extends ActionBarActivity {private ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar=getSupportActionBar();
//actionBar operation
actionBar.setTitle("ActionBar");
//....
}@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

5. 修改menu/main.xml (也就是Action Bar中的Action Items)
你的project中会有一个默认的main.xml,为了向Action Bar中添加几个功能按钮(也就是Action Items),我们需要对menu/main.xml进行些修改:

在root element中添加一个attribute

添加新的item项

如下:

<menu
Action Items广泛使用的一些icon,你可以从Download the Action Bar Icon Pack下载到。xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="always" />
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:orderInCategory="1"
android:icon="@drawable/action_search"
app:showAsAction="always" />
</menu>
Action Items广泛使用的一些icon,你可以从Download the Action Bar Icon Pack下载到。

转载于:https://www.cnblogs.com/zhujiabin/p/4551670.html

关于ActionBar的向下兼容相关推荐

  1. Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

    本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/act ...

  2. Failed to load AppCompat ActionBar with unknown error

    复制别人demo的布局,之后没有显示界面,下面提示 Failed to load AppCompat ActionBar with unknown error 解决方法:在style 里面的 Them ...

  3. Android ActionBarDrawerToggle、DrawerLayout、ActionBar 结合

    ActionBarDrawerToggle是一个开关.用于打开/关闭DrawerLayout抽屉 ActionBarDrawerToggle 提供了一个方便的方式来配合DrawerLayout和Act ...

  4. 【Android】ActionBar的使用(1)

    前(fei)言(hua):转行iOS开发半年,很久没接触Android了,前几天去上课,听着实在无聊,随手拿了同学的一本<Android UI设计>,发现有好多基础知识自己虽然用过,但是都 ...

  5. Android ActionBar相关

    1.Android 5.0 删除ActionBar下面的阴影 于Android 5.0假设你发现的ActionBar下面出现了阴影,例如,下面的设置,以消除阴影: getActionBar().set ...

  6. Android UI开发详解之ActionBar .

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果. 一.添加A ...

  7. android 创建3个按钮,【记录】继续尝试给Android程序的右上角的ActionBar中添加三个点的选项按钮...

    [背景] 想要给Android中的ActionBar中添加那种三个点的选项菜单,之前已经折腾过了,但是失败了,以为新版Android中没法添加呢: 但是后来在别的4.1.2的Android手机中,也还 ...

  8. android 自定义命名空间,Android自定义ActionBar实例

    本文实例讲述了android自定义actionbar的实现方法.分享给大家供大家参考.具体实现方法如下: android 3.0及以上已经有了actionbar的api,可以通过引入support p ...

  9. Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换

    一.问题描述 之前我们使用ViewPager+Fragment区域内头部导航,在Android 3.0之后Google增加了新的ActionBar,可方便的实现屏幕Head部区域的 设计如返回键.标题 ...

最新文章

  1. Linux基础知识汇总(2)...持续更新中
  2. 超级猩猩获 3.6 亿元 D 轮融资,计划今年新开100家门店
  3. $.post把表单对象传递过去_第二章 第三节 Request请求对象详解
  4. LinkedList模拟队列和堆栈
  5. Sublime Text 2.0.1 版本 Build 2217 汉化包
  6. JavaScript 节流函数 Throttle 详解
  7. osgQt::GLWidget的坑
  8. snmp 获得硬件信息_信息系统项目管理师(三)
  9. 从Element ui看开发公共组件的三种方式
  10. mergesort unrecursive 归并排序的非递归实现
  11. 物联lot是什么意思_互联网lot是什么意思
  12. 工业机器人导轨 百度文库_工业机器人复习资料
  13. AD1256之STM32程序——STM32测试高精度ADC篇(四)
  14. 127.0.0.1、192.168.0.111、本机地址、URL
  15. 基于卷积神经网络的手势识别研究论文
  16. mycobot 使用教程
  17. spring使用@Primary注解
  18. 水安ABC考试多选练习题库(7)
  19. 程序员非机械键盘_最好的非机械键盘
  20. BC35BC95 ONENET MQTT(旧)

热门文章

  1. hdu4549 M斐波那契数列
  2. 模糊神经网络工具箱函数使用
  3. opencv 图像阈值分割图像
  4. 【MPI程序】向量乘法,向量点积(高性能计算)
  5. 轻松删除git本地创建的仓库
  6. 将string转成dict(Python)
  7. gx works怎么写入from指令_FANUC PMC 指令和应用
  8. vscode MPE puppeteer导出pdf的数学公式显示问题
  9. accelerated C++ 第0章
  10. 单元测试工具JUnit