android 返回图标,在Toolbar中添加一个返回图标

本文介绍了如何在Android中添加并使用Toolbar,包括设置背景颜色、最小高度、适配系统窗口以及滚动标志。同时,讲解了如何添加返回按钮,设置显示HomeAsUp,并响应其点击事件,以及如何更改返回箭头的颜色。最后提到了在AppTheme中设置Toolbar的注意事项和相关代码实现。

如果我们在布局中这样添加一个Toolbar,那么添加后Toolbar中啥都没有,只有一个背景颜色

android:id="@+id/toolbar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="?attr/colorPrimary"

android:minHeight="?attr/actionBarSize"

android:fitsSystemWindows="true" // 这个意思是告诉系统要给它留一个status bar的高度的paddingTop,然后需要setSupportActionBar(mToolbar);

app:layout_scrollFlags="scroll|enterAlways"/>

如果要添加一个返回键在左边,如下图所示:

a81e6e5a6af7

image.png

则需要设置:

setSupportActionBar(mToolbar);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

要响应点击事件,则还需要添加

@Override

public boolean onOptionsItemSelected(MenuItem item) {

if(item.getItemId() == android.R.id.home){

Toast.makeText(this, "返回", Toast.LENGTH_LONG).show();

finish();

}

return super.onOptionsItemSelected(item);

}

默认添加的是一个黑色的箭头,在AppTheme中需要添加

@android:color/white

让箭头变为白色

这里使用了toolbar所以AppTheme的parent要是没有ActionBar的,比如:

记得在onCreate中设置

setSupportActionBar(mToolbar);

Android应用中,使用`Toolbar`并为其添加多个图标可以通过定义`menu`资源文件来实现。通常,这些图标会显示在`Toolbar`的右侧,并支持点击事件的处理。以下是实现方法: ### 1. 在布局文件中定义 `Toolbar` 首先,在XML布局文件中添加 `Toolbar` 组件,并设置相关属性。例如: ```xml <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> ``` 确保使用 `app:popupTheme` 来设置弹出菜单的主题,以确保菜单项的样式与应用主题一致。 ### 2. 创建 `menu` 资源文件 接下来,在 `res/menu/` 目录下创建一个 XML 文件(例如 `toolbar_menu.xml`),用于定义 `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/icon_one" android:icon="@drawable/icon_one" android:title="Icon One" app:showAsAction="ifRoom" /> <item android:id="@+id/icon_two" android:icon="@drawable/icon_two" android:title="Icon Two" app:showAsAction="ifRoom" /> <item android:id="@+id/icon_three" android:icon="@drawable/icon_three" android:title="Icon Three" app:showAsAction="ifRoom" /> </menu> ``` 在上述代码中: - `android:icon` 指定图标的资源文件。 - `app:showAsAction="ifRoom"` 表示如果空间足够,图标将直接显示在 `Toolbar` 上;否则,图标会出现在溢出菜单中。 ### 3. 在 `Activity` 中载 `menu` 在 `Activity` 中,需要通过 `onCreateOptionsMenu` 方法载 `menu` 资源文件,并将其绑定到 `Toolbar` 上: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar_menu, menu); return true; } ``` ### 4. 处理图标的点击事件 通过 `onOptionsItemSelected` 方法处理 `Toolbar` 图标的点击事件: ```java @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.icon_one) { // 处理第一个图标的点击事件 return true; } else if (id == R.id.icon_two) { // 处理第二个图标的点击事件 return true; } else if (id == R.id.icon_three) { // 处理第三个图标的点击事件 return true; } return super.onOptionsItemSelected(item); } ``` ### 5. 设置 `Toolbar` 为 ActionBar 如果需要将 `Toolbar` 设置为应用的 `ActionBar`,可以在 `Activity` 中调用以下代码: ```java Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); ``` ### 6. 图标资源的管理 根据屏幕密度提供适当的图标资源是关键。对于 `Toolbar` 的图标,可以只使用一份 96px×96px 的图片资源,并将其存放在 `xxxhdpi` 文件夹中,以减小安装包体积 [^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值