ToolBar菜单,不论是原来的actionbar菜单还是自定义的Toolbar菜单,都可以通过覆写onCreateOptionMenu()这个方法来添加菜单项,示例如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuinflater=getMenuInflater();
menuinflater.inflate(R.menu.actionbar_menu,menu);
return super.onCreateOptionsMenu(menu);
}
方法创建一个MenuInflater,并用inflate方法添加菜单的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/persion_menu"
android:title="个人"
>
</item>
<item android:id="@+id/start_menu"
android:title="start"
android:icon="@android:drawable/btn_star_big_on"
app:showAsAction="ifRoom">
</item>
</menu>
app:showAsAction=“ifRoom”表示显示在Toolbar或这Actionbar上ifRoom表示如果有控件这个前提条件,如果没有这个属性,则菜单会隐藏在Toolbart或者Actionbar右侧的三个点中,点击三个点就可以看到 “个人” 菜单,菜单的监听可以通过setOnItemClickListener方法来实现监听:
toolbar_main.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.persion_menu:
break;
case R.id.start_menu:
break;
}
return false;
}
});
通过switch来选择item的id从而实现各个item的功能。