关于Actionbar的那些事

来源:互联网 发布:淘宝如何联系卖家客服 编辑:程序博客网 时间:2024/04/29 19:55

咱们来说说有趣的Actionbar吧

Actionbar这个控件是3.0以后添加的,Google在13年的时候把它加入了v7包,现在第三方的Actionbarserlock基本没什么用了,

要兼容2.3版本的话,得用v7包,v7包要注意,不仅是一个jar包,它是一个库,有资源文件,v7-appcompat-***,***为版本号,注意:

版本号和主项目中的compile-sdk一定要匹配,complile-sdk必须大于或者等于v7库的版本号,不然v7里面的style会报错。

然后,你的Activity得继承ActionbarActivity,这样就OK了

Actionbar是干嘛的呢,其实就是一个导航栏,基本上是下面两种效果。

     

分别对应标签模式和下拉模式

复制代码
// 标签模式    private void tabActionBar() {        actionBar.setIcon(R.drawable.onemt_liked_big);        actionBar.setTitle("GG");        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        actionBar.addTab(actionBar.newTab().setText("1").setTabListener(this));        actionBar.addTab(actionBar.newTab().setText("2").setTabListener(this));        actionBar.addTab(actionBar.newTab().setText("3").setTabListener(this));    }
复制代码
复制代码
// 下拉模式    private void listActionBar() {        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);        SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.array, android.R.layout.simple_spinner_dropdown_item);        actionBar.setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener);    }
复制代码

当然,你不想用标签,也不想用下拉,就想用导航栏上面那几个图标也可以NavigationMode就设成正常或者不设置都可以。

然后,注意Activity中的两个重要的回调方法

复制代码
//创建Actionbar的菜单    @Override    public boolean onCreateOptionsMenu(android.view.Menu menu) {        getMenuInflater().inflate(R.menu.menu, menu);        return super.onCreateOptionsMenu(menu);    }        //Actionbar菜单的点击事件    @Override    public boolean onOptionsItemSelected(android.view.MenuItem item) {        switch (item.getItemId()) {        case android.R.id.home:            Toast.makeText(context, "df", Toast.LENGTH_SHORT).show();            break;        default:            break;        }                return super.onOptionsItemSelected(item);    }
复制代码

Actionbar是怎么布局的,点击哪个图标有什么反应,都通过这两个方法设置。menu资源文件中提供了Actionbar的图片的个数,属性,以及排列

最后,你想自定义Actionbar怎么办?

http://zhidao.baidu.com/question/362573981520597572.html
http://zhidao.baidu.com/question/178072669759268764.html
http://zhidao.baidu.com/question/1542312678992888307.html
http://zhidao.baidu.com/question/690520280714655524.html
http://zhidao.baidu.com/question/1496595654085908219.html
http://zhidao.baidu.com/question/136956581132048445.html
http://zhidao.baidu.com/question/1692120461414474268.html
http://zhidao.baidu.com/question/177944668296792444.html
http://zhidao.baidu.com/question/1960737854840882860.html

//自定义布局actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);actionBar.setDisplayShowCustomEnabled(true);actionBar.setCustomView(LayoutInflater.from(this).inflate(R.layout.customactionbar, null));

非常简单,用自定义布局就OK了

0 0
原创粉丝点击