[Android]Toolbar

news2025/1/16 6:58:59

Toolbar是由AndroidX库提供的,它的强大之处在于,它不仅继承了ActionBar的所有功能,并且灵活度很高,可以配合其他控件完成一些Material Design的效果。

使用Toolbar替代ActionBar


在themes的两个xml文件中,

都指定一个不带ActionBar的主题

Theme.MaterialComponents.DayNight.NoActionBar:表示浅色主题,它会将界面的主题颜色设成浅色,陪衬颜色设为深色。

Theme.MaterialComponents.NoActionBar:表示深色主题,它会将界面的主题颜色设成深色,陪衬颜色设为浅色。

 修改activity_main.xml的代码

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"//指定了一个新的命名空间
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar1"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"//高度设置为actionBar的高度
                android:background="?attr/colorPrimary"//背景颜色设置为colorPrimary
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"//单独将弹出的菜单项指定为浅色主题
              />
/>

在MainActivity中添加

setSupportActionBar(toolbar)

Toolbar常用属性


在这里插入图片描述

<androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar2"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:title="主标题"
                app:subtitle="副标题"
                android:background="?attr/colorPrimary"
                app:logo="@drawable/ic_launcher_foreground"
                app:titleTextColor="@color/black"
                app:subtitleTextColor="@color/black"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                />

 添加菜单选项


res/menu/toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/backup"//按钮的id
        android:icon="@drawable/is_backup"//指定按钮的图标
        android:title="Backup"//按钮的文字
        app:showAsAction="always"//指定按钮的显示位置
        />
    <item
        android:id="@+id/delect"
        android:icon="@drawable/is_delete"
        android:title="Delect"
        app:showAsAction="ifRoom"
        />
    <item
        android:id="@+id/settings"
        android:icon="@drawable/is_settings"
        android:title="Settings"
        app:showAsAction="never"
        />

</menu>

 showAsAction的属性:

showAsAction
always永远显示在Toolbar中,如果屏幕空间不够则不显示
ifRoom表示屏幕空间足够的情况下显示在Toolbar中,不够的话就显示在菜单当中
never表示永远显示在菜单当中

注意:Toolbar中的action按钮只会显示图标,菜单中的action按钮只会显示文字。

设置菜单的点击事件


override fun onCreateOptionsMenu(menu: Menu): Boolean {
        menuInflater.inflate(R.menu.toolbar,menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId){
            R.id.backup->Toast.makeText(this,"backup",Toast.LENGTH_SHORT).show()
            R.id.delect->Toast.makeText(this,"delect",Toast.LENGTH_SHORT).show()
            R.id.settings->Toast.makeText(this,"settings",Toast.LENGTH_SHORT).show()
        }
        return true
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/198203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频连载08 - 这个为生信学习和生信作图打造的开源R教程真香!!!

点击阅读原文跳转完整教案。1 思考题2 R基础2.1 R安装2.2 Rstudio基础2.2.1 Rstudio版本2.2.2 Rstudio安装2.2.3 Rstudio 使用2.3 R基本语法2.3.1 获取帮助文档&#xff0c;查看命令或函数的使用方法、事例或适用范围2.3.2 R中的变量及其初始化2.3.3 变量类型和转换2.3.4 R中矩…

ECharts接收dataset类型数据封装各类型图形组件

数据平台整合matabase图表&#xff0c;调用matabase已有接口使用echarts实现图表展示 目标 将各类型图形独立封装为组件 将多个组件整体封装成一个组件 使用时只需传入组件名和对应数据即可 展示 数据格式 ECharts中dataset配置 公共组件 示例饼图 pie-chart pie-chart comm…

AcWing 1083. Windy数(数位DP)

AcWing 1083. Windy数&#xff08;数位DP&#xff09;一、问题二、分析状态表示状态转移初末状态循环设计注意事项三、代码一、问题 二、分析 这道题考察的是数位DP的知识&#xff0c;对于数位DP的分析方法作者在之前的文章中做过详细地介绍&#xff1a;AcWing 1081. 度的数量…

java面试题(九)集合篇

2.1 Java中有哪些容器&#xff08;集合类&#xff09;&#xff1f; 参考答案 Java中的集合类主要由Collection和Map这两个接口派生而出&#xff0c;其中Collection接口又派生出三个子接口&#xff0c;分别是Set、List、Queue。所有的Java集合类&#xff0c;都是Set、List、Qu…

【LeetCode】Day206-二叉树着色游戏

题目 1145. 二叉树着色游戏【中等】 题解 官解说的实在是抽象了&#xff0c;看了下高赞题解&#xff0c;果然很清晰易懂 以 x 为根&#xff0c;它的三个邻居&#xff08;左儿子、右儿子和父节点&#xff09;就对应着三棵子树&#xff1a; 左子树右子树父节点子树 哪棵子树…

微服务项目框架及多模块开发

目录 项目模式 技术栈 项目架构图 模块 案例演示 主模块 zmall-common子模块 zmall-user子模块 项目模式 电商模式&#xff1a;市面上有5种常见的电商模式&#xff0c;B2B、B2C、 C2B、 C2C、O2O; 1、B2B模式 B2B (Business to Business)&#xff0c;是指 商家与商家…

java递归-八皇后问题(回溯算法)

1.八皇后问题介绍 八皇后问题&#xff0c;是一个古老而著名的问题&#xff0c;是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯贝瑟尔于 1848 年提出&#xff1a;在 88 格的国际象棋上摆放八个皇后&#xff0c;使其不能互相攻击&#xff0c;即&#xff1a;任意两个皇后都…

Day04-数据分析模型

文章目录数据分析模型数据分析流程第一&#xff1a;定性法第二&#xff1a;定量法一、数据分析要解决什么问题&#xff1f;1. 研究历史2. 解释现状4. 洞察商机5. 寻求最佳方案二、数据分析师的工作三、数据分析流程1. 数据分析框架2. 数据获取3. 数据处理4. 数据分析5. 撰写报告…

大数据技术架构(组件)18——Hive:FileFormats(1)

1.5、FileFormats1.5.1、FileFormat对比&#xff1a;1.5.1.1、Text File每一行都是一条记录&#xff0c;每行都以换行符&#xff08;\ n&#xff09;结尾。数据不做压缩&#xff0c;磁盘开销大&#xff0c;数据解析开销大。可结合Gzip、Bzip2使用&#xff08;系统自动检查&…

Python 3 基本数据类型,包含示例演示(初学友好)

嗨害大家好鸭~ 我是小熊猫 有好好学习python吗&#xff1f; Python学习资料电子书 点击此处跳转文末名片获取 Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值&#xff0c;变量赋值以后该变量才会被创建。 在 Python 中&#xff0c;变量就是变量…

Redis实现分布式锁

基于Redis实现分布式锁。分为单Redis节点实现和Redis集群实现。 基于单个Redis节点实现分布式锁 作为分布式锁实现过程中的共享存储系统&#xff0c;Redis可以使用键值对来保护锁变量&#xff0c;在接收和处理不同客户端发送的加锁的操作请求。 客户端A、C同时请求加锁&#…

【Linux】基本开发工具的使用-yumvimgcc/g++git

文章目录Linux 软件包管理器-yum什么是软件包window和Linux互传文件的工具: lrzszyum注意事项查看软件包注意事项如何安装软件注意事项如何卸载软件好玩的指令sl 小火车cowsay 打印一只说话的小牛boxes 打印一个ASCII的动画linux_logo 显示linux系统的logocurl http://wttr.in …

2021美赛D题艺术家思路整理

问题整理 使用influence_data数据集或其部分创建音乐影响力的&#xff08;多个&#xff09;定向网络&#xff0c;其中影响者与关注者相连。开发捕捉此网络中“音乐影响的参数”。通过创建定向影响网络的子网络来探索音乐影响力的子集。描述这个子网络。你的“音乐影响”指标在…

((蓝桥杯 刷题全集)【备战(蓝桥杯)算法竞赛-第3天】( 从头开始重新做题,记录备战竞赛路上的每一道题 )距离蓝桥杯还有64天

&#x1f3c6;&#x1f3c6;&#x1f3c6;&#x1f3c6;&#x1f3c6;&#x1f3c6;&#x1f3c6; 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&a…

PMP知识点1

根据PMBOK和参考书籍自己总结的一些不熟悉知识点&#xff0c;当做笔记放这复习。 1. 项目战略管理、组合管理、项目及管理、项目管理区别 战略管理项目组合管理项目集管理项目管理工作内容明确组织战略目标选择有利于实现战略目标的项目分析并利用各项目之间有机联系规范有序…

RAS《Research on Offense and Defense of DDos Based on Evolutionar Game Theory》

Read abstract and personal Summary of《Research on Offense and Defense of DDos Based on Evolutionar Game Theory》Ⅰ&#xff1a;Read abstract(阅读摘要)0&#xff1a;Proper noun interpretation&#xff08;专有名词解释&#xff09;1&#xff1a;The question raise…

windows 休眠后风扇狂转的解决方法

windows 休眠后风扇狂转的解决方法 问题描述&#xff1a; 在Windows电脑接入usb设备后进入休眠状态时&#xff0c;风扇立刻最大功率运行&#xff0c;在拔出usb/唤醒电脑后风扇会恢复正常。 解决方法&#xff1a; 使用powercfg 查询唤醒电脑的设备&#xff0c;然后移除此设备…

C语言基础(五)—— 数组、数组地址(步长+1)、字符串输入输出、随机数

1. 概述在程序设计中&#xff0c;为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型&#xff0c;同时所有的成员在内存中的地址是连续的。数组属于构造数据类型&am…

从Manifold到SNE再到t-SNE再回到Manifold

在介绍t-SNE之前&#xff0c;要从流形开始讲起。 流形Manifold 将流形引入到机器学习领域主要有两个用途&#xff1a; 改进原本欧式空间中的算法&#xff0c;使它能作用到流形上&#xff0c;直接或者间接地利用和流行的性质和构造。将流形映射到欧式空间中&#xff0c;令欧式…

软件测试面试:年后就拿到了5个offer,希望也能助你拿下满意的offer

求职&#xff0c;就像打仗&#xff0c;不仅是一场挑战自己的战斗&#xff0c;也是一场与用人单位的较量。 而求职者只有准备足够充分&#xff0c;才能在这场毫无硝烟的“战场”上取得胜利。 那么软件测试面试需要做哪些准备以及软件测试面试需要哪些技巧呢&#xff1f; 1、熟…