最近在项目中用到了自定义的ToolBar返回键设置以及返回键图标的更改,这里记录一下,以备日后使用,也是对 上次ToolBar的使用的补充。
首先我们知道使用ToolBar需要添加对应的依赖,这里不再赘述,可以看我上一篇关于ToolBar的文章。
在布局中加入ToolBar组件,我这里用一个TextView用来写标题
<androidx.appcompat.widget.Toolbarandroid:id="@+id/tb_tianmao_welcome"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="?attr/colorPrimary"android:minHeight="?attr/actionBarSize"android:theme="@style/ThemeOverlay.AppCompat.Light"app:navigationIcon="@mipmap/toolbar_back"app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"app:titleTextColor="@color/toolbar_black"><TextViewandroid:id="@+id/tv_tianmao_welcome1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:singleLine="true"android:textColor="@color/black"android:textSize="@dimen/title_text_size" /></androidx.appcompat.widget.Toolbar>
这里看到我使用了**Android:theme=“ThemeOverlay.AppCompat.Light(Dark)”**这样一个东西
这个主题可以自动匹配使用的背景色(类似白底黑字)。就不需要再去自己设置了。
navigationIcon这个参数设置的是返回键的图标,这里我们将图片资源放在mipmap这个文件夹中,确保他的分辨率以防止直接放置图标导致图标被拉伸变形。
再来看java部分:
setSupportActionBar(your toolbar's id);getSupportActionBar().setDisplayHomeAsUpEnabled(true);getSupportActionBar().setDisplayShowTitleEnabled(false);
这里我们把自带的标题栏隐藏,添加toolbar上去,然后添加一个返回按钮,
之后设置返回按钮的点击事件
@Overridepublic boolean onOptionsItemSelected(@NonNull MenuItem item){if(item.getItemId()==android.R.id.home){finish();}return super.onOptionsItemSelected(item);}
设置的点击事件可以用intent跳转到其他界面达到回退效果也可以直接finish关掉。
对返回按钮的设置我们也可以自定义使用我们自己的图片资源,
在布局文件中找到ToolBar的设置片段,添加如下代码:
app:navigationIcon = "your image"
注意图片放的位置决定他的分辨率
如果直接放在drawable文件夹中可能会导致图片拉伸变形,或者模糊
而放在mipmap的文件夹中则可以达到小图标或者中等图标的效果