android 自定义toolbar菜单,077-Toolbar比较常用的功能-自定义菜单

修改标题栏上显示的文字内容

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" />

507c3e96f07c4080c41c8cd633da80a9.png

bab8deda05d80b21b1dd1e0a8b4ca470.png

接着使用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按钮都是可

以响应点击事件的, 你可以自己去试一试。

022234670c4545924780c697c8bc56a5.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值