Android_ActionBar

Actionbar是Google在android3.0推出的控件, 用于取代传统菜单键, 将菜单显示在顶栏, 虽然在Android5.0 后Google推出Toolbar来取代Actionbar. 不过系统默认还是使用的Actionbar作为应用的标题栏.

修改Actionbar

1
2
3
4
5
6
7
8
9
10
11
12
// 得到系统的ActionBar
ActionBar supportActionBar = getSupportActionBar();//继承的AppCompatActivity用这个方法
//设置标题
supportActionBar.setTitle("GooglePlay");
supportActionBar.setSubtitle("副标题");
// activity同时也自带设置actionbar标题的方法, 还有
setTitle("标题");
//设置图标
supportActionBar.setIcon(R.drawable.ic_launcher);
supportActionBar.setLogo(R.mipmap.ic_action_call);

默认图标是不显示的

1
supportActionBar.setDisplayShowHomeEnabled(false);//默认是false,默认是隐藏图标

虽然setIcon和 setLogo都是设置图标, 但是默认Icon比Logo的优先级高

1
supportActionBar.setDisplayUseLogoEnabled(true);//默认是false,默认是没用logo,用的icon

显示回退箭头

1
supportActionBar.setDisplayHomeAsUpEnabled(true);//默认是false,默认隐藏了回退部分

配合DrawerLayout

ActionBar常常和侧滑菜单配合使用

替换回退箭头为侧滑抽屉按钮

1
2
3
ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this, mDrawerMain, R.string.open_menu,
R.string.close_menu);
drawerToggle.syncState();

监听Drawer的打开和关闭, 来实现更新回退按钮

1
mDrawerMain.setDrawerListener(mDrawerToggle);

演示:

点击按钮打开和关闭Drawer

1
2
3
4
5
@Override
public boolean onOptionsItemSelected(MenuItem item) {
mDrawerToggle.onOptionsItemSelected(item);
return super.onOptionsItemSelected(item);
}