Jetpack:011-Jetpack中标题栏

news2025/7/9 17:35:17

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 标题与导航
    • 2.2 详情菜单
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了Jetpack中进度条相关的内容,本章回中主要介绍 标题栏。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的标题栏就是位于屏幕最上方的内容,它通常在屏幕状态的下方,主要用来显示页面的标题,在Android的View体系中也它ActionBar.在Jetpack中叫AppBar,它通过可组合函数TopAppBar实现,本章回中将详细介绍它的使用方法。

2. 使用方法

标准的标题栏包含最左侧的导航图标,中间的标题内容和最右侧的详情菜单。这三个内容可以同时显示,也可以部分显示。Jecpack库提供了可组合函数TopAppBar来实现标题栏,该函数提供了相关的参数来控制标题栏中的这三个内容,下面是相关的参数:

  • title参数:主要用来控制标题栏中显示的文本内容;
  • navigationIcon参数:主要用来控制最左侧的导航图标;
  • actions参数:主要用来控制最右侧的详情菜单;
  • colors参数:主要用来控制标题栏中各项内容的颜色;

上面介绍的参数中,前三个参数都是函数类型,通常使用lambda表达式给它们赋值,我们将在后面的小节中通过代码来演示。

2.1 标题与导航

标题与导航实现比较简单,标题通过Text可组合函数就可以实现,导航是一个图标,使用IconButton可组合函数实现,如果图标旁边还有文字,那么可以使用Button可组合函数实现,它可以同时组合Icon和Text两个函数,一个用来控制图标,一个用来控制图标旁边的文本内容。

2.2 详情菜单

这部分内容可以使用IconButton可组合函数实现,点击Button时弹出一个菜单窗口。这些内容实现相对复杂一些,我们在后面章回中将详细介绍。

3. 示例代码

TopAppBar(
    colors = TopAppBarDefaults.smallTopAppBarColors(
        containerColor = Color.Blue,
        navigationIconContentColor =  Color.White,
        titleContentColor = Color.White,
        actionIconContentColor = Color.White,
    ),
    title = {
        //不论是Box还是Row都无法让title居中源代码中使用layout组合函数实现
        Row(
            //加上背景后可以看到它的大小,这也是无法居中对齐的原因
            modifier = Modifier.background(color= CusColor),
            horizontalArrangement = Arrangement.Center,
            verticalAlignment = Alignment.CenterVertically,
        ){
            Text(text = "Title")
        }
    },
    navigationIcon = {
        Icon(
            imageVector = Icons.Default.ArrowBack,
            contentDescription = null
        )
    },
    actions = {
        IconButton(
            onClick = { }){
            Icon(
                imageVector = Icons.Default.MoreVert,
                contentDescription = null
            )
        }
    }
)

上面的示例代码中演示了标题栏的实现内容,我们在关键地方都添加了注释。下是程序的运行效果图:
在这里插入图片描述

此外,这个实现有一个缺点:标题位于导航图标旁边,不能居中显示,如果想让标题居中显示,那么使用CenterAlignedTopAppBar函数代码上面代码中的TopAppBar函数,这两个函数的用法相同,我们不再单独介绍。

4. 内容总结

最后,我们对本章回的内容做一个总结:

  • 标题栏位于屏幕顶部,主要用来显示页面标题;
  • 标题栏分三部分内容:导航、标题和详情,可以全部或者部分显示其中的内容;
  • 实现标题栏的函数有两个,一个可以让标题居中,另外一个不可以,它们的用法相同;

看官们,关于Jetpack中标题栏相关的内容介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

航天科技×辰安科技 打造智慧化工园区安全保障平台

近年来,国内化工园区安全事故频发,多起化工园区重特大事故造成了严重人员财产损失的同时,也重创了行业的整体发展。在智能制造和工业互联网的背景下,建设智慧化工园区,使用智能化手段实现安全生产是解决当前化工园区安…

2023年Q3季度国内手机大盘销额下滑2%,TOP品牌销售数据分析

根据Canalys机构发布的最新报告,2023年第三季度,全球智能手机市场出货量仅下跌1%,可以认为目前全球手机市场的下滑势头有所减缓。而国内线上市场的表现也类似。 根据鲸参谋数据显示,今年Q3京东平台手机累计销量约1100万件&#xf…

MYSQL学习笔记1-window安装mysql5.7

1.下载安装包 官网下载:MySQL :: Download MySQL Installer (Archived Versions) 第一个是在线安装,不下载这个;我们下载第二个 2. 安装mysql 1)选择自定义安装 双击下载的msi文件 “Developer Default”是开发者默认 “Server o…

RK3568平台开发系列讲解(驱动篇)Linux 中断实验

🚀返回专栏总目录 文章目录 一、中断处理函数二、request_irq 函数三、中断号四、free_irq 函数五、中断使能与禁止函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 内核提供了完善的中断框架,我们只需要申请中断,然后注册中断处理函数即可,使用非常方便…

Spring核心扩展点BeanDefinitionRegistryPostProcessor源码分析

我们知道,只要在一个Java类上加上Component、Service、Controller等注解,就可以被加载到Spring容器中,除了以上方式,加了Bean和Import好像也可以将对象添加到Spring容器中,究竟Spring是如何实现这些功能的呢&#xff1…

YAPI介绍及Docker Compose部署指南

我们团队的项目最初前后端是同一个开发人员在做,因此并不存在提供详细接口文档等问题。随着项目的不断迭代,团队规模逐渐扩大,我们决定将前后端分开,专门由专业的前端和后端人员进行开发工作。然而,这样的改变也带来了…

多线程下的单例设计模式(新手必看!!!)

在项目中为了避免创建大量的对象,频繁出现gc的问题,单例设计模式闪亮登场。 一、饿汉式 1.1饿汉式 顾名思义就是我们比较饿,每次想吃的时候,都提前为我们创建好。其实我记了好久也没分清楚饿汉式和懒汉式的区别。这里给出我的一…

MyCat 2全套学习笔记(完整配置【主从+集群】+理论解析 + 大厂真实业务理解)

目录 入门概述 MyCat概念 MyCat的作用 读写分离 数据分片 多数据源整合 MyCat 解决问题的思路 MyCat 和MySQL的区别 MyCat原理 MyCAT2的安装 前言 下载压缩包和jar包 安装MyCAT2 创建/data/tools 进入/data/tools目录 下载 下载完成 解压并移动到data目录下 修改权限 把所需…

【工具】利用ffmpeg将网页中的.m3u8视频文件转化为.mp4格式

目录 0.环境 1.背景 2.前提 3.详细描述 1)在网站上找到你想下载的视频的.m3u8链接 2)打开命令行,用ffmpeg命令进行转化 3)过程&结果截图 0.环境 windows64 ffmpeg 1.背景 网页上有个.m3u8格式的视频文件,…

ZKP3.2 Programming ZKPs (Arkworks Zokrates)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 3: Programming ZKPs (Guest Lecturers: Pratyush Mishra and Alex Ozdemir) 3.3 Using a library ( tutorial) R1CS Libraries A library in a host language (Eg: Rust, OCaml, C, Go, …)Key type: constraint system Mai…

Jmeter —— 接口之间关联调用(获取上一个接口的返回值作为下一个接口的请求参数)

正则表达式: 具体如何操作: 1. 草稿保存, 此请求的响应数据的id 为发布总结的请求参数draft_id 2. 草稿保存的响应数据 3.在草稿保存的请求中,添加后置处理器- 正则表达式提取器, 提取响应数据的id信息 4. 发布总结请…

【vue2高德地图api】02-npm引入插件,在页面中展示效果

系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、安装高德地图二、在main.js中配置需要配置2个key值以及1个密钥 三、在页面中使用3.1 新建路由3.2新建vue页面3.2-1 index.vue3.2…

深度学习——VGG与NiN网络

深度学习——VGG与NiN网络 文章目录 前言一、使用块的网络(VGG)1.1. VGG块1.2. VGG网络1.3. 模型训练1.4. 小结 二、网络中的网络(NIN)2.1. NIN块2.2. NIN模型2.3. 训练模型2.4. 小结 总结 前言 本章将学习使用块的网络&#xff…

c#设计模式-行为型模式 之 解释器模式

🚀简介 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的 句子。 解释器模式包含以下主要角色 抽象表达式(Abstract Expression)角色:定义解释器的接口&…

基于Java的考研信息查询系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

问题记录2 域名解析问题

上线部署时遇到内网域名解析问题: 内网域名为xxx.cn,在ip为yyy的服务器上,ping:xxx.cn 首先在服务器:yyy /etc/hosts查找缓存记录 cat /etc/hosts 127.0.0.1 VM-4-2-centos VM-4-2-centos 127.0.0.1 localhost.local…

【C+】C++11 —— 线程库

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C学习 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【C】C11…

基于SSM的视频播放系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

网络库OKHttp(1)流程+拦截器

序、慢慢来才是最快的方法。 背景 OkHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用。对于 Android App 来说,OkHttp 现在几乎已经占据了所有的网络请求操作。 OKHttp源码官网 版…

JVM垃圾回收算法介绍

堆的分代和区域 (年轻代)Young Generation(eden、s0、s1 space) Minor GC (老年代)Old Generation (Tenured space) Major GC|| Full GC (永久代)Permanent…