首页 > 代码库 > 小议ActionBar

小议ActionBar

 ActionBar,顾名思义,小伙伴们,你们想到了什么呢?

   嘿嘿,其实就是一个可以代替以前类似于iPhone手机导航栏效果的title在Android手机界面的位置的一种bar的设计!

    有几个事注意点哦!

    不能设置界面全局和没有标题哦!这样的话,actiobar找不到自己生存的空间,就会死掉。

    ActionBar可以自定义,也可以召唤Android里面自带的ActionBar。自定义的肯定要好多咯,不管是位置还是其他的,用着都还好啦!不过,原生的也不错。

 

这里是自己写的一个简单的Actionbar,

 

    public void createAction() {
        // to create a SpinnerAdapter
        SpinnerAdapter adapter = ArrayAdapter.createFromResource(this,
                R.array.style_choice,
                android.R.layout.simple_spinner_dropdown_item);
        android.app.ActionBar actionBar = getActionBar();

        // to set the style
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);
        Resources r = getResources();

        Drawable myDrawable = r.getDrawable(R.drawable.gradient_header);

        actionBar.setBackgroundDrawable(myDrawable);

        // to set the mode NAVIGATION_MODE_LIST
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        // to add a listener
        actionBar.setListNavigationCallbacks(adapter, new DropDownListenser());
    }

    /**
     * 实现 ActionBar.OnNavigationListener接口
     */
    class DropDownListenser implements OnNavigationListener {
        // 得到和SpinnerAdapter里一致的字符数组
        String[] listNames = getResources()
                .getStringArray(R.array.style_choice);

        /* 当选择下拉菜单项的时候,将Activity中的内容置换为对应的Fragment */
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {
            if (itemPosition == 1) {
                pager.edit().putString("name", "古典样式").commit();
                Intent intent = new Intent().setClass(MainHomeActivity.this,
                        ClassicalMainActivity.class);
                startActivity(intent);
                finish();
            } else {
                pager.edit().putString("name", "现代样式").commit();
            }
            return true;
        }
    }

通过点击actionbar里面的内容,然后来判断页面的跳转也是可以的哦!然后也可以用一个ActionBar管住所有的应用界面哦!