第四百一十二回

文章目录

  • 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.mfbz.cn/a/470310.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

KKVIEW远程控制 手机远程控制电脑

机远程控制电脑:实现跨设备便捷操作 随着科技的飞速发展,智能手机和电脑已成为我们日常生活中不可或缺的工具。有时,我们可能需要在不直接接触电脑的情况下对其进行操作,这时,手机远程控制电脑的技术就显得尤为重要。…

深入理解栈和队列(一):栈

个人主页:17_Kevin-CSDN博客 专栏:《数据结构》 一、栈的概念 栈(Stack)是一种特殊的线性表,它遵循后进先出(Last-In-First-Out,LIFO)的原则。栈可以被看作是一个只能在一端进行操作…

内网横向移动小结

windows Windows-Mimikatz 适用环境: 微软为了防止明文密码泄露发布了补丁 KB2871997,关闭了 Wdigest 功能。当系统为 win10 或 2012R2 以上时,默认在内存缓存中禁止保存明文密码,此时可以通过修改注册表的方式抓取明文&#xff…

selenium 元素定位攻略大全

一、By类单一属性定位 元素名称描述Webdriver APIidid属性driver.find_element(By.ID, "id属性值")namename属性driver.find_element(By.NAME, "name属性值")class_nameclass属性driver.find_element(By.CLASS_NAME, "class_name属性值")tag_na…

Angular进阶之八: Angular Animation在项目中的实践经验

使用 Angular 进行项目开发的程序员应该都很熟悉 Angular Animation。这是一个 Angular 原生的动画库,它可以替代或者辅助完成原本需要使用 css 的动画功能。 Angular 在国内的运用是很有限的,可借鉴的文档并不很丰富。尤其对于 Angular 动画模块的应用…

中间件-消息队列

消息队列基础知识 什么是消息队列 本处提到的消息队列是指各个服务以及系统组件/模块之间的通信,属于一种中间件。参与消息传递的双方称为生产者和消费者,生产者负责发送消息,消费者负责处理消息。 消息队列作用 通过异步处理&#xff0…

Node.js安装Vue3安装

文章目录 前言Node.js安装设置Node.js系统变量Vue3安装 前言 前端初学者注意:node.js 先安装后才能安装vue3,node.js在安装时会自动安装npm Node.js安装 安装包已上传CSDN,审核中 , 也可以nodejs官网下载 默认C盘,本人下载路径…

idea import的maven类报红

idea 报红/显示红色的原因 一般报红,显示红色,是因为 idea 在此路径下,找不到这个类。 找到是哪个 jar 包的类导致 idea 报红 点击报红的路径的上一层,进入jar 包。比如: import com.aaa.bbb.ccc.DddDto;这个 impo…

K8s-网络原理-上篇

引言 本文是学习《深入剖析K8s》网络原理部分的学习笔记,相关图片和案例可以从https://github.com/WeiXiao-Hyy/k8s_example获取,欢迎Star! 网络基础 IP组成 IP地址由两部分组成,即网络地址和主机地址。网络地址表示其属于互联…

03.生命周期和工程化开发入门

一、Vue生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好)什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期:就是一个Vue实例从创建 到 销毁 的整个过程。 生命…

TikTok云手机是什么原理?

随着社交媒体的快速发展和普及,TikTok已成为全球最受欢迎的短视频平台之一,吸引了数以亿计的用户。在TikTok上,许多用户和内容创作者都希望能够更灵活地管理和运营多个账号,这就需要借助云手机技术。那么,TikTok云手机…

10-项目部署_持续集成-黑马头条

项目部署_持续集成 1 今日内容介绍 1.1 什么是持续集成 持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干 持续集成的组成要素 一个自动构建过程, 从…

CCIE-04-Layer2_WAN_TS

目录 实验条件网络拓朴 路由器配置开始排错, 要求R11可以访问R17的telnet检查R12和R11的e0/0口,有发现检查R17和R12的S4/0口, 有发现ping R17环回口地址,发现不通telnet R17环回口IP 实验条件 网络拓朴 路由器配置 R11 4组以太网…

基于python智慧社区家政服务系统的设计与实现flask-django-nodejs-php

随着现代网络技术发展,对于智慧社区家政服务系统的设计现在正处于发展的阶段,所以对的要求也是比较严格的,要从系统的功能和用户实际需求来进行对系统制定开发的发展方式,依靠网络技术的的快速发展和现代通讯技术的结合为人们带来…

【NLP笔记】RNN总结

文章目录 经典RNN单向RNN双向RNNDeep RNNRNN特性总结 变体RNNLSTMGRU 参考及转载内容: 循环神经网络(RNN)深度学习05-RNN循环神经网络完全理解RNN(循环神经网络) 传统的CNN(Covolutional Neural Network&am…

图解CodeWhisperer的安装使用

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 目录 📘 CodeWhisperer简介 &#…

C#,图论与图算法,有向图(Graph)之环(Cycle)判断的颜色算法与源代码

1 检查该图是否包含循环 给定一个有向图,检查该图是否包含循环。如果给定的图形至少包含一个循环,则函数应返回true,否则返回false。 方法:深度优先遍历可用于检测图中的循环。连接图的DFS生成树。只有当图中存在后缘时,图中才存在循环。后边是从节点到自身(自循环)或…

【计算机视觉】Gaussian Splatting源码解读补充

本文旨在补充gwpscut创作的博文学习笔记之——3D Gaussian Splatting源码解读。 Gaussian Splatting Github地址:https://github.com/graphdeco-inria/gaussian-splatting 论文地址:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gauss…

EPSON XV4001BC陀螺仪传感器汽车导航系统的应用

近年来为了提高汽车应用系统的可靠性,传感器融合系统被越来越多的应用到汽车领域,如汽车导航系统中的行人检测和预碰撞警告等,通过提供精准的导航信息,为驾驶员提供更安全,更稳定,更舒适的出行体验,例如在行人检测系统中,只使用低成本的红外传感器不能检测到行人的实际位置,而利…

【MySQL】工欲善其事必先利其器 --- Linux下安装MySQL(手把手保姆级)

👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…