第四百一十二回

文章目录

  • 1. 概念介绍
  • 2. 思路与方法
    • 2.1 实现思路
    • 2.2 实现方法
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"给geolocator插件提交问题的结果"相关的内容,本章回中将介绍自定义标题栏.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在这里说的标题栏是指页面最上方的显示页面标题的地方,注意它位于手机状态栏(显示信号条)的下方。如果我们使用Scaffold来搭建页面的话,那么这个标题栏
就是AppBar.我们在本章回中将介绍如何自定义标题栏相关的内容。

2. 思路与方法

2.1 实现思路

我们自定义标题栏并不是重写相关的组件,而是使用把多个组件组合在一起的形成新的标题栏。组合的内容依据自己的需求来制定。比如,我们对标题栏的需求是:显示文
本和图标,这比单独的文本内容要好看一些。有了这个需求后,我们就可以自定义标题栏了,文本通过Text组件实现,图标可以用Image或者Icon组件实现。它们需要
显示在一个水平维度上,因此使用Row来组合它们。

2.2 实现方法

接下来,我们按照自定义标题栏的思路来实现这个标题栏,下面是详细的实现步骤:

  • 创建一个Row组件,用来组合文本和图标;
  • 在Row组件中添加文本和图标组件,并且调整它们之间的间隔;
  • 把Row组件当作一个自定义标题栏赋值给AppBar的title属性;
    有看官可能感觉比较抽象,不用担心,我们将在后面的小节中通过示例代码来演示具体的内容。

3. 示例代码

appBar: AppBar(// title: Text("Example of Video Image Picker like wechat"),///控制title内容与返回箭头之间的距离titleSpacing: 0.0,///自定义的标题,取代简单的Text Widget组件,通过自定义可以实现一些复杂的标题.title: SizedBox(width: screenWidth/4,child: const Row(children: [///使用Expand是为了显示长字符Expanded(child: Text("Example of Video Image Picker like wechat",maxLines: 1,overflow: TextOverflow.ellipsis,),),Icon(Icons.favorite),],),),

上面的示例代码完全按照实现方法中的步骤来实现,不过我们在Row组件外层嵌套了一个SizedBox,它主要用来控制title显示的范围。代码中省略了Scaffold以及其
它的代码,只保留了AppBar相关的代码。
编译并且运行上面的程序可以看到一个标题栏,标题左边是返回箭头,然后就是我们自定义的文本和图标。此外还可以通过AppBar的titleSpacing属性来调整返回箭头
和标题之间的距离。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

4. 内容总结

我们在本章回中演示了如何自定义标题栏,并且通过一个需求:显示文本和图标的标题栏,介绍了自定义标题栏的思路和方法。大家可以结合自己在项目中的需求来自定义
标题栏,自定义的思路就是依据需求组合现有的组件形成新的组件。总之,只要是组件就可以,因为AppBar的title属性是Widget类型,我们需要把自定义的标题栏赋
值给该属性,这样才可以在显示到标题栏中。
看官们,与"自定义标题栏"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

在Linux/Ubuntu/Debian中使用iFuse访问iOS 设备(例如 iPhone 或 iPad)上的文件可双向复制粘贴

iFuse 是一款工具,可让你在 Linux 系统上安装 iOS 设备(例如 iPhone 或 iPad),使你能够访问其文件系统并与设备传输文件。 以下是有关如何使用 iFuse 的基本指南: 安装依赖项:在安装 iFuse 之前&#xff0c…

go语言-基础元素与结构的使用

go基础元素与结构的使用,快速上手 编译go文件 编译为可执行文件 go build 文件名.go运行文件 ./文件名输入/输出 引用fmt库(关于输入输出的库) 输入 **scanf:**按照给定的格式依次读取数据(包括非法数据&#xff…

计算机网络——HTTP

HTTP报文格式长什么样? HTTP报文它是由请求行,请求头,请求体组成的 请求行他是请求或响应的基本信息 请求头他是使用key-value格式可以更加详细的说明报文 请求体是传输的具体内容 是如何分割的? 请求行与请求头他是用\r\n来…

wireshark windows 抓包https

windows下 1.配置环境变量以生成ssl协商会话密钥日志记录 系统设置-》高级设置-》环境变量 新增环境变量 SSLKEYLOGFILE C:\Users\Public\Documents\SSLKEY\sslkey.log 打开公用共享文档创建SSLKEY文件夹用于后续系统存放协商密钥日志 2.配置Wireshark选项进行抓包 点击…

(一)Linux+Windows下安装ffmpeg

一丶前言 FFmpeg是一个开源的音视频处理工具集,由多个命令行工具组成。它可以在跨平台的环境中处理、转换、编辑和流媒体处理音视频文件。 FFmpeg支持多种常见的音视频格式和编解码器,可以对音视频文件进行编码、解码、转码、剪辑、合并等操作。它具有广…

最近火绒的explorer问题,电脑黑屏只有鼠标

由于安全限制,覆盖文件是行不通的,按照火绒官方给的方法试试,还是不行。主要是他最后一步写得有问题。恭喜火绒,成功的将我们所有客户的电脑安装的火绒卸载。 解决方案 1、CTRLSHIFTESC调出任务管理器; 2、左上角&am…

.net使用excel的cells对象没有value方法——学习.net的Excel工作表问题

$exception {"Public member Value on type Range not found."} System.MissingMemberException 代码准备运行问题解决1. 下载别的版本的.net框架2. 安装3. 运行 代码 Imports Excel Microsoft.office.Interop.Excel Public Class Form1Private Sub Button1_Click(…

「实战应用」如何用DHTMLX构建自定义JavaScript甘特图(二)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。 当您声称您的产品具有高级定制功能时,客户一定会对产品进行严格测试,这个规则当然适用于DHTMLX Gantt&…

万用表革新升级,WT588F02BP-14S语音芯片助力智能测量新体验v

万能表功能: 万能表是一款集多功能于一体的电子测量工具,能够精准测量电压、电流、电阻等参数,广泛应用于电气、电子、通信等领域。其操作简便、测量准确,是工程师们进行电路调试、故障排查的得力助手,为提升工作效率…

Rust 中Self 关键字的两种不同用法

在 Rust 中,Self 是一个特殊的类型标识符,它代表了当前结构体或枚举类型。在结构体或枚举类型的定义中,Self 可以用于表示该类型的任何地方,包括方法签名、构造函数、类型别名等。 构造函数中的 Self: 在这段代码中&a…

大语言模型数据集alpaca羊驼数据集、Vicuna骆马数据集异同、作用、使用领域

文章目录 大语言模型数据集alpaca羊驼数据集、Vicuna骆马数据集异同、作用、使用领域Alpaca和Vicuna简介AlpacaVicuna相同点不同点 alpaca、vicuna能否用在大语言模型微调中?alpaca、vicuna进行大语言模型微调时,由于其已经是标准化数据集,还…

奥特曼剧透GPT-5,将在高级推理功能上实现重大进步

奥特曼:“GPT-5的能力提升幅度将超乎人们的想象...” 自 Claude 3 发布以来,外界对 GPT-5 的期待越来越强。毕竟Claude 3已经全面超越了 GPT-4,成为迄今为止最强大模型。 而且距离 GPT-4 发布已经过去了整整一年时间,2023年3月1…

2024年区块链、电子信息与计算机工程国际会议(ICBEICE 2024)

2024年区块链、电子信息与计算机工程国际会议(ICBEICE 2024) 2024 International Conference on Blockchain, Electronic Information and Computer Engineering 会议简介: 2024年区块链、电子信息与计算机工程国际会议(ICBEIC…

Android 源码中 内置系统App(整个APP源码方式集成)

1. 如何新建一个系统 App 项目 使用 Android Studio 新建一个空项目 FirstSystemApp,包名设置为 com.yuandaima.firstsystemapp,语言选择 Java。后面为叙述方便称该项目为 as 项目。 接着在 jelly/rice14 目录下创建如下的目录和文件: 接着…

安卓面试题多线程 96-100

96. 简述notify()和notifyAll()有什么区别 ?notify可能会导致死锁,而notifyAll则不会任何时候只有一个线程可以获得锁,也就是说只有一个线程可以运行synchronized 中的代码 使用notifyall,可以唤醒 所有处于wait状态的线程,使其重新进入锁的争夺队列中,而notify只能唤醒一…

播放器视频卡顿,延迟的原因

之前测试过一些参数,也看到了1280x720就不卡,1920x1080明显就卡的多。那么就是说数据量太大了导致的延迟与卡顿!!!!! 有可能是协议,ffmpeg参数的问题。 还有一个问题,播…

node.js 的常用命令

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使得 JavaScript 可以脱离浏览器在服务器端运行。在使用 Node.js 进行开发时,有一些常用的命令可以帮助你更高效地进行开发和管理项目。以下是一些基本的 Node.js 命令: 1. node…

金江能源:助力新能源行业发展上市之路逐步迈进

在当今全球节能减排的大背景下,新能源产业成为了社会发展的热门领域。楚雄州金江能源集团有限公司作为新能源产业中的佼佼者,凭借其雄厚的技术实力和前瞻性的发展战略,已经展开了公司上市的蓄势之路。5月15日,金江能源将在港交所上市,为公司的发展注入更多资金和资源。 作为一…

vue axios 缓存 接口请求实现缓存加载

文章写的多了,开头就不知道怎么写了,硬挤一些句子总觉的卖弄。其实更多的想留下各位看官,多多的点赞,多多的关注,多的收藏。为将来的博客化动作做好前期数据粉丝基础。哦哦哦,我在想啥呢。。这大下午的。。…

Three.js简介

Three.js前提须知 讲到 Three.js,就需要先说一下 OpenGL 和 WebGL。 OpenGL 是一个跨平台的3D/2D的绘图标准(规范),WebGL(Web Graphics Library)是一种3D绘图协议。 WebGL允许把JavaScript和OpenGL 结合…