Android ToolBar 基本使用

一.概述

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);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值