ActionBar
我对ActionBar的简单总结
一、
功能:
1、显示选项菜单的菜单项
2、使用程序图标作为返回Home主屏或向上的导航操作
3、提供交互是View作为Action View
4、提供Tab的导航方式,可用于切换多个Fragment
5、提供下拉式的导航
二、启用ActionBar
ActionBar acitonBar= getActionBar();
acitonBar.show();
acitonBar.hide();
三、显示选项菜单
setShowAsAction(int actionEnum);该方法设置是否将该菜单项显示在ActionBar上,作为ActionItem。
里面的参数有以下几种
MenuItemCompat.SHOW_AS_ACTION_ALWAYS (始终显示)
MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW (隐藏列表中显示)
MenuItemCompat.SHOW_AS_ACTION_IF_ROOM (屏幕有空间就显示,没空间就隐藏)
MenuItemCompat.SHOW_AS_ACTION_NEVER (永不显示)
MenuItemCompat.SHOW_AS_ACTION_WITH_TEXT (既显示图标又显示文字)
最后 在方法中要 return true
四、启动程序图标导航
1、设置是否应该将应用程序图标转变成可点击的图标,并且在图标上添加一个向左的箭头。
setDisplayHomeAsUpEnabled(boolean showHomeAsUp)
2、通过传入int类型常量来控制该ActionBar的显示选项
setDisplayOptions(int options)
a)opitions选项为
DISPLAY_HOME_AS_UP
DISPLAY_SHOW_CUSTOM
DISPLAY_SHOW_HOME
DISPLAY_SHOW_TITLE
DISPLAY_USE_LOGO
NAVIGATION_MODE_LIST
NAVIGATION_MODE_STANDARD
NAVIGATION_MODE_TABS
3、设置是否显示应用程序的图标。
setDislayShowHomeEnabled(boolean showHome)
4、设置是否将应用程序图标转变成可点击的按钮。
setHomeButtonEnabled(boolean eabled)
五、ActionBar左上角的返回键监听
它的id是android.R.id.home。下面列举了两种写法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == android.R.id.home)
{
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.isCheckable()){
item.setCheckable(true);
}
//判断是哪个菜单项,并有针对性地作出响应
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this,FirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
六、actionBar实现Tab导航(注意:要继承ActionBar. TabListener)
1)调用ActionBar的setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)方法设置使用Tab导航方式。
2)调用ActionBar的addTab()方法添加多个Tab标签,并为每个Tab标签添加时间监听器
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.addTab(actionBar.newTab().setText("第一页").setTabListener(this));