修改标题栏上显示的文字内容
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:name=".MainActivity"
android:label="Fruits">
...
这里给activity 增加了一个android:label 属性,android:label="Fruits" 用于指定在Toolbar中显示的文字内容,如果没有指定的话, 会默认使用application 中指定的label 内容, 也就是我们的应用名称。android:label="@string/app_name"
我们还可以再添加一些action 按钮来让Toolbar更加丰富一些, 这里我提前准备了几张图片来作为按钮的图标, 将它们放在了drawable-xxhdpi目录下。 现在右击res目录→New→Directory, 创建一个menu文件夹。 然后右击menu文件夹→New→Menu resource file, 创建一个toolbar.xml文件, 并编写如下代码:
xmlns:app="http://schemas.android.com/apk/res-auto">
android:id="@+id/backup"
android:icon="@drawable/back"
android:title="Backup"
app:showAsAction="always" />
android:id="@+id/delete"
android:icon="@drawable/del"
android:title="Delete"
app:showAsAction="ifRoom" />
android:id="@+id/settings"
android:icon="@drawable/settings"
android:title="Settings"
app:showAsAction="never" />
接着使用app:showAsAction 来指定按钮的显示位置, 之所以这里再次使用了app命名空间,
同样是为了能够兼容低版本的系统。 showAsAction 主要有以下几种值可选:
always表示永远显示在Toolbar中, 如果屏幕空间不够则不显示;
ifRoom表示屏幕空间足够的情况下显示在Toolbar中, 不够的话就显示在菜单当中;
never则表示永远显示在菜单当中。
注意, Toolbar中的action按钮只会显示图标, 菜单中的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;
}
非常简单, 我们在onCreateOptionsMenu() 方法中加载了toolbar.xml这个菜单文件, 然后在onOptionsItemSelected() 方法中处理各个按钮的点击事件。 现在重新运行一下程序,效果如图12.4所示
可以看到, Toolbar上面现在显示了两个action按钮, 这是因为Backup按钮指定的显示位置是
always, Delete按钮指定的显示位置是ifRoom, 而现在屏幕空间很充足, 因此两个按钮都会显示
在Toolbar中。 另外一个Settings按钮由于指定的显示位置是never, 所以不会显示在Toolbar中, 点
击一下最右边的菜单按钮来展开菜单项, 你就能找到Settings按钮了。 另外这些action按钮都是可
以响应点击事件的, 你可以自己去试一试。