1. 范例说明
- 从Android 3.0开始,Android引入了ActoinBar,不得不说3.0之前android的标题栏确实比较丑,并且还没有任何功能。
- 之前很多应用的顶部栏很多都是仿苹果的,比如微信。随着Android 4.0和Android 4.2 的发布和慢慢的推广开来,很多应用也开始使用Google推广的UI设计,而ActionBar是其中相当重要的一部分。
- 无奈google没有发布3.0之前版本的ActionBar的兼容包。还好网上有提供开源的别人开发的,ActionBarShelock,简称ABS.
- ABS的还有一项值得一提的优点就是,如果你在3.0以上的机子上使用,那么它会调用系统原生的ActionBar。另外它的使用方法和系统自身的方法相当相似,如果你ActionBar本身已经很熟悉了,那么ABS也能很快上手。
- http://actionbarsherlock.com/下载对应的压缩包
2. 运行结果
3. 核心代码
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { getSupportMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()){ case R.id.menu_settings: Toast.makeText(this, "ActionBarSherlock settings!", Toast.LENGTH_LONG).show(); break; case R.id.homeAsUp: Toast.makeText(this, "Home!", Toast.LENGTH_LONG).show(); break; } return super.onOptionsItemSelected(item); }
4. 使用注意事项
1.自己的项目Buildtarget也要在4.0+,api 14+。不然有关Theme.Holo xml文件读取不到资源,会导致R文件不能生成。
2.由于actionbarsherlock中自带了android_support_v4的包,所以你不用再导入一个了,以前导入过了也要删除,不然会产生冲突。
3.有时候会提示你的程序不是一个库的错误,只要在ActionbarSherlock中 properties-> android 中,将islibrary勾上就行了。
4.要使用Actionbar要继承sherlockactivity,在配置文件中声明activity时,要添加Theme设置才行,而且只能是三种或parent是这三种。
5. 观看视频讲解