ToolBar的简单使用

代码片段  2024年7月11日 pm3:36发布3个月前更新 91es.com站长
278 0 0

前言

上一篇《ActionBar中Menu使用》介绍的是主题样式中默认显示ActionBar,这种有局限性不好自定义。

因此我们主题样式中隐藏NoActionBar,使用ToolBar来定制更多的选项。

正文

# 带ActionBar
Theme.MaterialComponents.Light

# 不带ActionBar
Theme.MaterialComponents.Light.NoActionBar

之前是用了带ActionBar的,这就用不带ActionBar的。

新主题样式

Theme.MaterialComponents.Light.NoActionBar

使用ToolBar

ToolBar的简单使用

  1. app:navigationIcon 设置 navigation button

  2. app:logo 设置 logo 图标

  3. app:title 设置标题

  4. app:titleTextColor 设置标题文字颜色

  5. app:subtitle 设置副标题

  6. app:subtitleTextColor设置副标题文字颜色

  7. app:titleTextAppearance设置 title text 相关属性,如:字体,颜色,大小等等

  8. app:subtitleTextAppearance 设置 subtitle text 相关属性,如:字体,颜色,大小等等

  9. app:logoDescription logo 描述

  10. app:menu 设置menu

  11. android:background Toolbar 背景

  12. 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>

这样就修改了字体大小。其他属性也可以这样修改

参考文章

  1. android material 模板 安卓material组件

 历史上的今天

  1. 2023: 《阿里Android手册》笔记(0条评论)
  2. 2021: 骆一禾:月 亮(0条评论)
  3. 2019: Log工具类(0条评论)
  4. 2019: 毕淑敏:提醒幸福(0条评论)
  5. 2019: 席慕容:时间(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

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设备也可...