Android ToolBar 基本使用

来源:互联网 发布:淘宝男裤子店铺排名 编辑:程序博客网 时间:2024/04/30 02:56

一.概述

Google在Android5.0以后推出了一个Toolbar来完全代替之前的Actionbar,Toolbar的出现解决了Actionbar的各种限制,Toolbar可以完全自定义和配置。先来看看ToolBar的默认样式:

这里写图片描述

左边是应用的名称,右边是一个菜单。

二.使用

先看布局文件:

        <android.support.v7.widget.Toolbar            android:id="@+id/toolbar"            android:layout_width="match_parent"            android:layout_height="?attr/actionBarSize"            android:background="?attr/colorPrimary"            app:popupTheme="@style/AppTheme.PopupOverlay" />

请使用v7中的ToolBar,不然只有Android 5.0以后才能使用。

代码:

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

声明后,再用 setSupportActionBar 设定,Toolbar即能取代原本的 actionbar 了

三.更改ToolBar的样式

1.先看基本的,改变背景颜色以及文字颜色

这里写图片描述

代码如下:

 <android.support.v7.widget.Toolbar            android:id="@+id/toolbar"            android:layout_width="match_parent"            android:layout_height="?attr/actionBarSize"            android:background="#7700ff00"            android:theme="@style/AppTheme.AppBarOverlay"            app:popupTheme="@style/AppTheme.PopupOverlay" />

修改ToolBar的背景颜色:

 android:background="#7700ff00"

修改字体颜色:

android:theme="@style/AppTheme.AppBarOverlay"

修改菜单弹出窗口样式:

这里写图片描述

//菜单窗口为白色,不设置就为黑色app:popupTheme="@style/AppTheme.PopupOverlay" 

2.添加控件

先看效果图:

这里写图片描述

先看菜单以外的部分,

   Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);        //标题        toolbar.setTitle("天气很好");        //子标题        toolbar.setSubtitle("是的");        //图标        toolbar.setLogo(R.mipmap.ic_launcher);        setSupportActionBar(toolbar);        //导航图标,要放到setSupportActionBar之后        toolbar.setNavigationIcon(R.drawable.aa);

菜单部分需要在menu的布局文件中设置:

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    tools:context=".MainActivity">    <item android:id="@+id/action_edit"        android:title="编辑"        android:orderInCategory="80"        android:icon="@drawable/ee"        app:showAsAction="ifRoom" />    <item android:id="@+id/action_share"        android:title="分享"        android:orderInCategory="90"        android:icon="@drawable/ss"        app:showAsAction="ifRoom" />    <item android:id="@+id/action_settings"        android:title="@string/action_settings"        android:orderInCategory="100"        app:showAsAction="never"/></menu>

android:orderInCategory代表次序,数字越小越排在前面。
app:showAsAction指定是否显示在菜单里面
never:永远不会显示。只会在溢出列表中显示。
ifRoom:会显示在Item中,但是如果已经有4个或者4个以上的Item时会隐藏在溢出列表中。

然后我们给这几个菜单添加点击事件:

首先让当前Activity实现Toolbar.OnMenuItemClickListener接口,然后
重写对应的方法:

  @Override    public boolean onMenuItemClick(MenuItem item) {        String msg = "";        switch (item.getItemId()){            case R.id.action_edit:                msg+="edit";                break;            case R.id.action_share:                msg+="share";                break;            case R.id.action_settings:                msg+="setting";                break;        }        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();        return false;    }

最后别忘了添加

 toolbar.setOnMenuItemClickListener(this);

这样就实现了菜单按钮的监听。

0 0
原创粉丝点击