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));

 

 

 

 

 

 

 

 

 

 

 

posted @ 2014-01-10 00:23  F_YuXiang  阅读(1010)  评论(0编辑  收藏  举报