前言:谷歌官方不再推荐使用ActionBar了,推荐使用design风格的Toolbar,所以我们现在来说说Toolbar使用。

一、替换掉Actionbar

既然要使用Toolbar,就要将原来的Actionbar替换掉。进入AndroidManifest文件,找到使用的主题
一般默认是 android:theme="@style/AppTheme"
这个的意思是 本app的主题用的是style文件下的名为AppTheme的主题,让我们打开这个主题:
res->values->style.xml
打开后,我们只需要将第一行改成Theme.AppCompat.Light.NoActionBar就好了,这里的Light指浅色主题,这里的NoActionBar就是我们去掉ActionBar的关键。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">                "colorPrimary">@color/colorPrimary        "colorPrimaryDark">@color/colorPrimaryDark        "colorAccent">@color/colorAccent    style>

运行之后app已经没有菜单栏了

二、在布局文件中写入Toolbar控件

    

这里的高度设置成了actionBar的大小

三、在java文件中

绑定Toolbar 并调用setSupportActionBar()方法来设置当前的菜单栏为已绑定的toolbar对象:

 Toolbar toolbar = findViewById(R.id.toolbar);        setSupportActionBar(toolbar);

这时候,我们运行一下

看起来跟ActionBar没什么两样,但是这时候上面的已经是Toolbar而不是Actionbar了。

四、为Toolbar添加按钮

首先,我先从阿里巴巴图标库上下载了几个图标

有过ActionBar基础的应该知道,如果想增加在bar上增加按钮功能或者菜单,第一步需要:
在menu文件夹下创建xml文件,用来配置菜单栏

menu文件下的menu.xml

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <item        android:id="@+id/backup"        android:title="backup"        android:icon="@drawable/icons1"        app:showAsAction="always"        />    <item        android:id="@+id/backup1"        android:title="backup1"        app:showAsAction="never"        />    <item        android:id="@+id/backup2"        android:title="backup2"        app:showAsAction="ifRoom"        android:icon="@drawable/icons2"        />menu>

说明:分别指定了title
对于showAsAction方法 三个属性分别需要大家了解

属性 说明
ifRoom 如果菜单栏还有位置那就放,如果没有就放入折叠菜单
never 永远不放在外面,一直都在折叠菜单里
Always 永远放在外面

然后,我们需要对这个菜单进行配置,在MainActivity文件中重写下面这个方法,将刚才配置的xml文件与菜单进行绑定。

@Override    public boolean onCreateOptionsMenu(Menu menu) {       getMenuInflater().inflate(R.menu.toolbar,menu);       return true;    }

最后的效果如下:

如果要为这些按钮添加监听事件,可以在MainActivity文件重写这个方法:

@Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId())        {            case R.id.backup:                Toast.makeText(next.this,"backup",Toast.LENGTH_SHORT).show();                break;            case R.id.backup1:                Toast.makeText(next.this,"backup1",Toast.LENGTH_SHORT).show();                break;            case R.id.backup2:                Toast.makeText(next.this,"backup2",Toast.LENGTH_SHORT).show();                break;            default:                break;        }        return  true;    }

现在让我们看看效果图:

更多相关文章

  1. android 5.1.1开机优化(framework层)
  2. 安装Android(安卓)2.2 SDK时出现的问题
  3. Android(安卓)adb push ... Read-only file system
  4. android创建文件夹和文件
  5. Android对文件的操作(简单的文件读取与写入)
  6. 内核直接NFS挂载Android文件系统启动
  7. 【Android(安卓)UI设计与开发】第07期:底部菜单栏(二)Fragment的详
  8. (原创)Android入门教程(三十六)------实现手机联系人的全选
  9. Android图片浏览器之缩略图

随机推荐

  1. TabHost 置于底部 顶部的方法
  2. Android(安卓)调用相册 拍照 实现系统控
  3. Android中解析xml文件的接口
  4. android中application 关于全局变量
  5. Android中打电话的数据流程
  6. android textView 加入连接方式
  7. android ClipDrawable 使用
  8. [Android]获取其他应用的logcat
  9. 在Android中实现文件读写
  10. telephony