Android 5.0 以上Toolbar上添加按钮和菜单

1. menu_main.xml的文件内容:


    
    
    

app:showAsAction的属性值:
alaways:这个值会使菜单项一直显示在ActionBar上。
ifRoom:     如果有足够的空间,这个值会使菜单显示在ActionBar上。
never:       这个值菜单永远不会出现在ActionBar是。
withText:   这个值使菜单和它的图标,菜单文本一起显示。
android:orderInCategory 设置优先级,值越大优先级越低(菜单中会根据值排序)
菜单2:会显示在菜单1的上方,因为android:orderInCategory的优先级
菜单3:会显示在Toolbar的上面,不会隐藏在菜单按钮中。

2.MainActivity.java的代码实现,主要实现2个重写函数

onCreateOptionsMenu()实现绑定menu菜单
onOptionsItemSelected()实现点击事件

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            Toast.makeText(this,"这里是菜单1",Toast.LENGTH_SHORT).show();
        }else if(id == R.id.history){
            Toast.makeText(this,"这里是菜单2",Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this,"这里是菜单3",Toast.LENGTH_SHORT).show();
        }
        return super.onOptionsItemSelected(item);
    }
菜单3显示到了toolbar上.gif

3.可能有人会想,如果我想改变Toolbar自带的图标(返回和菜单),很好,那我们就试着改变

改变“返回”图标

app:navigationIcon="@drawable/yn",就是我们改变“返回”键的图标

改变“菜单”内容的图标

    
    
    

我们将menu中所有的item项修改成 app:showAsAction="ifRoom"
android:icon="@drawable/shop_car"这样,我们就看到了想要的菜单图标,如图:

菜单内容图标和显示.png

改变自带菜单三点图标的两种方式

1、toolbar.setOverflowIcon(getResources().getDrawable(android.R.drawable.ic_menu_share));
2、Toolbar控件中 使用的样式 android:theme="@style/ToolBarTheme"


    
    
    
    

如图:

menu.gif

你可能感兴趣的:(Android 5.0 以上Toolbar上添加按钮和菜单)