Toolbar比较常用的功能-自定义菜单修改标题栏上显示的文字内容
修改标题文字
通过给 Activity 设置 android:label 属性来指定 Toolbar 中显示的文字内容。若未指定,则默认使用 Application 中定义的 android:label(即应用名称)。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="Fruits">
...
</activity>
</application>Code language: HTML, XML (xml)
创建菜单资源文件
准备图标图片放入 drawable-xxhdpi 目录。在 res 目录下新建 menu 文件夹,并创建 toolbar.xml 菜单资源文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/backup"
android:icon="@drawable/back"
android:title="Backup"
app:showAsAction="always" />
<item
android:id="@+id/delete"
android:icon="@drawable/del"
android:title="Delete"
app:showAsAction="ifRoom" />
<item
android:id="@+id/settings"
android:icon="@drawable/settings"
android:title="Settings"
app:showAsAction="never" />
</menu>Code language: HTML, XML (xml)
说明:使用 app:showAsAction 是为了兼容低版本系统。showAsAction 属性常用取值:
always:永远显示在 Toolbar 中(空间不够可能不显示)。ifRoom:空间足够时显示在 Toolbar 中,不够则收进菜单。never:永远隐藏在右侧溢出菜单中(只显示文字)。
注意:Toolbar 上的 action 按钮只显示图标,菜单中的只显示文字。
在活动中加载菜单并处理点击事件
修改 MainActivity 代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.backup:
Toast.makeText(this, "You clicked Backup", Toast.LENGTH_SHORT).
show();
break;
case R.id.delete:
Toast.makeText(this, "You clicked Delete", Toast.LENGTH_SHORT).
show();
break;
case R.id.settings:
Toast.makeText(this, "You clicked Settings", Toast.LENGTH_SHORT).
show();
break;
default:
}
return true;
}Code language: JavaScript (javascript)
运行效果说明
- Backup 按钮(
always)和 Delete 按钮(ifRoom,当前空间充足)直接显示在 Toolbar 上。 - Settings 按钮(
never)隐藏在右侧菜单按钮展开的菜单项中。 - 点击各 action 按钮均可触发对应的 Toast 提示响应。



Previous: 导入V7包
Next: 滑动布局DrawerLayout