首页 > 代码库 > Android ActionBar简单使用

Android ActionBar简单使用

ActionBar 出现在Android 3.0后 API 11之后,替代了3.0之前的标题栏

ActionBar分为四个区域

A : 图标 || B : 标题 || C : 内容切换 || D :菜单

 

常用方法

Activity.getActionBar() // 在Activity中得到ActionBar对象 

 

A:

ActionBar.setDisplayHomeAsUpEnabled(boolean)  // 设置A区域是否可以点击

ActionBar.setDisplayShowHomeEnabled(boolean)  // 设置A区域图标是否显示

事件监听 Activity重写onMenuItemSelected方法,android.R.id.home为区域按钮id

@Overridepublic boolean onMenuItemSelected(int featureId, MenuItem item) {    if (item.getItemId() == android.R.id.home) { // TODO        Toast.makeText(this, "Home", Toast.LENGTH_SHORT).show();    }    return super.onMenuItemSelected(featureId, item);}

B:

ActionBar.setTitle(CharSequence)                  // 设置区域显示内容

ActionBar.setDisplayShowTitleEnabled(false); // 设置区域是否显示

 

C:

ActionBar.setNavigationMode(int)                 // 设置此区域的样式

ActionBar.NAVIGATION_MODE_STANDARD   // 默认


ActionBar.NAVIGATION_MODE_TABS    // 选项卡

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);ActionBar.TabListener tabListener = new ActionBar.TabListener() {    @Override    public void onTabUnselected(Tab tab, FragmentTransaction ft) {}    @Override    public void onTabSelected(Tab tab, FragmentTransaction ft) {}    @Override    public void onTabReselected(Tab tab, FragmentTransaction ft) {}};actionBar.addTab(actionBar.newTab().setText("Tab_01").setTabListener(tabListener));actionBar.addTab(actionBar.newTab().setText("Tab_02").setTabListener(tabListener));actionBar.addTab(actionBar.newTab().setText("Tab_03").setTabListener(tabListener)); // 如果不加监听程序会报错

ActionBar.NAVIGATION_MODE_LIST     // List显示

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);String[] lists = { "List_01", "List_02", "List_03" };ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, lists);ActionBar.OnNavigationListener navListener = new ActionBar.OnNavigationListener() {    @Override    public boolean onNavigationItemSelected(int arg0, long arg1) {        return false;    }};actionBar.setListNavigationCallbacks(listAdapter, navListener);

D:

关于D菜单区域相当于重写3.0之前的菜单,在屏幕显示不下的会显示三个点,点击会展开

项的生成与事件监听,重写Activity中的以下方法

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    super.getMenuInflater().inflate(R.menu.main, menu);  // 填充Menu    return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {    int id = item.getItemId();    // TODO 根据id判断处理    return super.onOptionsItemSelected(item);}

 

Android ActionBar简单使用