android中toolbar的使用--导航(1)

效果图:
android中toolbar的使用--导航(1)_第1张图片

toolbar的实现
1、去掉actionbar的主题
2、最简单的toolbar也要包含两项内容:左边的标题+右边的overflow菜单
3、overflow菜单的showasaction="never"表示菜单始终隐藏在图标:中;属性如果设置为ifroom,表示如果toolbar有空间,菜单项将会显示,否则隐藏;always:一直呈现。

styles.xml









导航条上面的4个图标
menu.xml





menu.xml中添加的com.hnkjwlxy.androidch01.AddProvider文件
package com.hnkjwlxy.androidch01;

import android.content.Context;
import android.support.v4.view.ActionProvider;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Toast;

public class AddProvider extends ActionProvider {
    private Context context;
    public AddProvider(Context context) {
        super(context);
        this.context=context;
    }
    @Override
    public View onCreateActionView() {
        return null;
    }
    @Override
    public void onPrepareSubMenu(SubMenu subMenu) {
        subMenu.clear();
        subMenu.add("sub menu 1").setIcon(R.mipmap.ic_launcher).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                Toast.makeText(context, "您点击了子菜单1", Toast.LENGTH_SHORT).show();
                return true;
            }
        });
        subMenu.add("sub menu 2").setIcon(R.mipmap.ic_launcher).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                Toast.makeText(context, "您点击了子菜单2", Toast.LENGTH_SHORT).show();
                return true;
            }
        });
    }
    //该方法表明actionprovider有子菜单
    @Override
    public boolean hasSubMenu() {
        return true;
    }
}

布局文件:
注意:
android:layout_height="?attr/actionBarSize"
表示toolbar的高度会采用原来actionbar的高度
?attr/表示预定义样式,相当于给这个样式定义了一个变量,随后可以给这个变量赋值。
actionBarSize表示actionbar的尺寸

activity_one.xml



    

activity_two.xml



    
    
    

activity_three



    
    


java代码放在下章

你可能感兴趣的:(android中toolbar的使用--导航(1))