前言
上一篇《》介绍的是主题样式中默认显示ActionBar,这种有局限性不好自定义。
因此我们主题样式中隐藏NoActionBar,使用ToolBar来定制更多的选项。
正文
# 带ActionBar Theme.MaterialComponents.Light # 不带ActionBar Theme.MaterialComponents.Light.NoActionBar
之前是用了带ActionBar的,这就用不带ActionBar的。
新主题样式
Theme.MaterialComponents.Light.NoActionBar
使用ToolBar
-
app:navigationIcon 设置 navigation button
-
app:logo 设置 logo 图标
-
app:title 设置标题
-
app:titleTextColor 设置标题文字颜色
-
app:subtitle 设置副标题
-
app:subtitleTextColor设置副标题文字颜色
-
app:titleTextAppearance设置 title text 相关属性,如:字体,颜色,大小等等
-
app:subtitleTextAppearance 设置 subtitle text 相关属性,如:字体,颜色,大小等等
-
app:logoDescription logo 描述
-
app:menu 设置menu
-
android:background Toolbar 背景
-
android:theme主题
下面简单配置一下。
<androidx.appcompat.widget.Toolbar android:id="@+id/main_tb_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/purple_500" app:logo="@mipmap/ic_launcher" app:navigationContentDescription="" app:navigationIcon="@mipmap/ic_launcher" app:subtitle="子标题" app:subtitleTextColor="@color/white" app:title="标题" app:titleMarginStart="90dp" app:titleTextColor="@color/white"> </androidx.appcompat.widget.Toolbar>
这样可以通过findViewById查找Toolbar
Toolbar toolbar = findViewById(R.id.main_tb_toolbar);
如果需要显示菜单(Menu)栏
toolbar.inflateMenu(R.menu.menu);
监听Menu点击事件
@SuppressLint("NonConstantResourceId") @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.app_menu_1: Toast.makeText(this, getText(R.string.app_menu_1), Toast.LENGTH_SHORT).show(); return true; case R.id.app_menu_2: Toast.makeText(this, getText(R.string.app_menu_2), Toast.LENGTH_SHORT).show(); return true; case R.id.app_menu_3: Toast.makeText(this, getText(R.string.app_menu_3), Toast.LENGTH_SHORT).show(); return true; } return super.onOptionsItemSelected(item); }
修改title文本属性
虽然有titleTextColor可以设置Title文本的颜色,但文本大小没有直接的方式可以使用,这个需要借用titleTextAppearance和subtitleTextAppearance来修改。
这里以titleTextAppearance为例介绍。
这里引用的是style样式。
app:titleTextAppearance="@style/Toolbar.TitleText"
这个Toolbar.TitleText样式需要自己定义
<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> <item name="android:textSize">30sp</item> </style>
这样就修改了字体大小。其他属性也可以这样修改
参考文章
-
《
历史上的今天
暂无评论...
随机推荐
Android Studio将lib项目打包成jar和aar
jar包和aar包的区别jar包只包含class文件,不包含资源文件。aar包包含class文件和资源文件。aar生成及引用Android Studio编译lib库会在build/outputs/aar目录生成aar,有两个一个debug一个release。(至于这两个区别,我没有深入...
[摘]Android IO流读写文件
一、概念文件在程序中是以流的形式来操作的。流:是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两个存储位置之间的传输称为流。流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。二、分类1、按照流向划分:输入流、输出流以内存为参照:输...
Android图片旋转+倒影
前言根据前面两篇文章,这里进行组合也就是倒影+旋转,顺便加上了倒影渐变。效果如图。正文直接上代码<!-- layout_height= 倒影高度+分割线高度+图片高度,否则显示不全 --><com.biumall.reflectview.view.Rotat...
[摘]Android音频焦点处理
概要Android系统允许多个应用同时播放音频,这种特性有利有弊。例如当我们正在听音乐的时候突然点开了一个视频,如果我们发现音乐的声音和视频的的声音混合了在一起,这显然让我们非常不爽。而如果我们在播放音乐的时候,突然来了一条信息,这个时候,我们既希望能听到短信的提示音,又不希望音乐此刻停止,而是...
梁实秋:鸟
我爱鸟。从前我常见提笼架鸟的人,清早在街上溜达(现在这样有闲的人少了)。我感觉兴味的不是那人的悠闲,却是那鸟的苦闷。胳膊上架着的鹰,有时头上蒙着一块皮子,羽翮不整的蜷伏着不动,哪里有半点邻视昂藏的神气?笼子里的鸟更不用说,常年的关在栅栏里,饮啄倒是方便,冬天还有遮风的棉罩,十分的“优待”,但是如果...
编译Android源码,并刷入Nexus7真机
编译Android源码,并刷入Nexus7真机时我使用的如下配置(后来我Ubuntu 16也编译成功)编译环境:Ubuntu 14.04源码版本:Android6.0真实设备:Nexus7 wifi 第二代(flo)本教程是为Nexus7而写的,当然其他的Nexus设备也可...