第四百四十二回

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 获取思路
    • 2.2 获取方法
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"如何获取屏幕相关参数"相关的内容,本章回中将介绍如何获取AppBar的高度.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在上一间章回中介绍了获取屏幕参数相关的内容,同时也提到AppBar的高度容易与屏幕顶部状态栏的高度混淆,本章回中将介绍如何获取AppBar的高度。

2. 使用方法

2.1 获取思路

我们在获取AppBar高度时不能像获取屏幕参数一样直接读取MediaQueryData类中成员的值,因为MediaQueryData没有提供相关的成员。我们需要通过计算才可以。

我们没有直接去计算,而是巧妙地通过运行时的错误信息来获取AppBar的高度。整体的思路就是故意在页面中放一个超过页面高度的组件,运行时就会报出错误,从错误
信息中获取AppBar的高度值。

2.2 获取方法

有了整体的思路后,我们将介绍具体的实现方法,详细如下:

  • 使用Scaffold组件创建一个页面;
  • 在Scaffold代表的页面中给appBar和body属性赋值;
  • appBar中只提供title,其它属性先不赋值;
  • body的属性值为一个Container组件,它只包含一个Text组件;
  • 设置Container组件的宽度为屏幕的宽度,高度为屏幕的高度;

该方法中把Container组件的高度设置为屏幕的高度是不合理的,它已经超过了屏幕的显示范围,不过这是故意为之,通过不合理的过程让程序报错,同时计算出超出屏
幕尺寸的值就可以间接地计算出AppBar的高度。

3. 示例代码

Scaffold(
  appBar: AppBar(
    title: const Text("ListView example AppBar"),
  ),
  ///这个程序可以巧妙地计算出appBar的高度,通过运行时的错误,我的是56
  body: 
      Container(
        color: Colors.lightGreen,
        width: screenWidth,
        height: (screenHeight - statusBarHeight),
        child: Text("body of scaffold"),
      ),
);

上面的程序完全按照获取方法中介绍的步骤来实现,代码中的screenHeight表示屏幕的高度,statusBarHeight表示顶部状态栏的高度。

运行该程序就会出现高度不够用的错误,同时在页面上也会有黄黑条纹进行提示。我们可以在页面上和错误信息中看到具体尺寸值,这个值再减去顶部状态栏的高度就是页中AppBar的高度,下面是运行时的错误信息。///A RenderFlex overflowed by 56 pixels on the bottom.

4. 内容总结

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

  • 页面中AppBar的高度需要通过计算才可以获得;
  • 页面中子组件的长度和宽度不能超过容器的长度和宽度;
  • 我们巧妙地通过程序的错误信息计算出了AppBar的高度,不过实际中不推荐这样去做;

看官们,与"如何获取AppBar的高度"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《含储能接入的三相配电网分布式可再生能源可调度域建模与计算》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

糟糕,Oracle归档满RMAN进不去,CPU98%了!

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

程序员延寿指南:科学延寿 20 年 | 开源日报 No.214

geekan/HowToLiveLonger Stars: 28.7k License: Unlicense HowToLiveLonger 是一个程序员延寿指南项目。 该项目旨在提供关于如何延长寿命的指南,特别是针对程序员群体。该项目包括术语、目标、关键结果、分析、行动和证据等内容,涵盖了各种与健康相关的…

C语言要点细细梳理——番外:运算符优先级

C语言中的运算符优先级决定了在没有括号的情况下,表达式中的各个部分应如何求值。这个优先级是固定的,并且遵循一定的规则。当运算符的优先级相同时,运算的方向(从左到右或从右到左)则称为运算符的结合性。 下面是一个…

JAVA基础03-scanner,输出,循环,if的使用以及eclipse的安装

目录 scanner的使用 if语句的使用 eclipse的使用 switch语句的使用 输出方法的使用 循环语句 scanner的使用 实现用户数据的交互,用户通过终端输入数据 注意:使用Scanner需要导包 在程序开头加上:import java.util.Scanner; //由于S…

2024免费Mac苹果解压压缩包软件BetterZip5

在2024年,对于Mac电脑用户来说,如果你想要无需解压就能快速查看压缩文档的内容,BetterZip是一个极佳的选择。这款软件不仅支持多种格式的压缩和解压,如zip、rar、7z、tar等,还具备丰富的功能和设置,包括预览…

异地组网怎么管理?

在当今信息化时代,随着企业的业务扩张和员工的分布,异地组网已经成为越来越多企业的需求。异地组网管理相对来说是一项复杂而繁琐的任务。本文将介绍一种名为【天联】的管理解决方案,帮助企业更好地管理异地组网。 【天联】组网的优势 【天联…

《pytorch深度学习实战》学习笔记第2章

第2章 预训练网络 讨论3种常用的预训练模型: 1、根据内容对图像进行标记(识别) 2、从真实图像中生成新图像(GAN) 3、使用正确的英语句子来描述图像内容(自然语言) 2.1 获取一个预训练好的网络…

c++宏有什么离谱操作?

Boost.Preprocessor确实是一个非常强大而复杂的C宏库,专门用于元编程,即在编译时进行代码生成和变换。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程不妨点个关注,给个评论222&…

WordPress建站教程:10步快速搭建个人网站

WordPress是一个广泛使用的内容管理系统(CMS),凭借其用户友好的界面和大量可定制的主题和插件,为WordPress 提供了多功能性和灵活性,可用于创建各种类型的网站,包括个人博客、B2B企业网站、B2C外贸网站等&a…

骨架屏:提升用户体验的巧妙技巧

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

CleanMyMac2024拥有优化Mac电脑所需的所有工具,深层清理、恶意软件移除、用CleanMyMac X就够了!

CleanMyMac X 拥有优化 Mac 电脑所需的所有工具:深层清理、恶意软件移除、性能提升…… 优化 Mac 电脑,用 CleanMyMac X 就够了! CleanMyMac作为一款专为Mac用户设计的系统清理和优化软件,通过其独特的功能和特性,帮助…

Linux集群(二)集群搭建与keeplived配置

目录 一、集群搭建 1.复制3份Tomcat 2.测试Tomcat 3. 配置nginx.conf配置文件 二、keeplived 1.什么是keeplived 2.keeplived特点 3.下载和安装 3.1下载 3.2安装 3.3配置keeplived.conf配置文件 3.4测试 一、集群搭建 集群的主要目的是解决并发的问题。 1.复制3…

【QT+QGIS跨平台编译】056:【pdal_lazperf+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal_lazperf介绍二、pdal下载三、文件分析四、pro文件五、编译实践一、pdal_lazperf介绍 pdal_lazperf 是 PDAL(Point Data Abstraction Library)的一个插件,用于处理点云数据。PDAL 是一个开源的库,用于处理和分析地理空间数据,特别是点云…

详解TCP/IP五层模型

目录 一、什么是TCP五层模型? 二、TCP五层模型的详细内容 1. 应用层 2. 传输层 3. 网络层 4. 数据链路层 5. 物理层 三、网络设备所在分层 封装和分⽤ 三、Java示例 引言: 在网络通信中,TCP/IP协议是至关重要的。为了更好地理解TCP协议的工…

SD-WAN组网,协助企业业务需求灵活调整带宽和网络资源

随着企业网络需求的不断增长和变化,传统的网络架构已经不能满足企业灵活调整带宽和网络资源的需求。而SD-WAN(软件定义广域网)作为一种新型的网络架构,可以帮助企业实现灵活调整带宽和网络资源,满足不同业务需求。本文…

Cisco Modeling Labs (CML) 2.7 - 网络仿真工具

Cisco Modeling Labs (CML) 2.7 - 网络仿真工具 思科建模实验室 (CML) 请访问原文链接:https://sysin.org/blog/cisco-modeling-labs-2/,查看最新版。原创作品,转载请保留出处。 Cisco Modeling Labs 是我们用于网络仿真的首要平台。凭借易…

Delphi编写的图片查看器

UNIT Unit17;INTERFACEUSESWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Vcl.StdCtrls, Vcl.ExtDlgs, Vcl.ExtCtrls, Vcl.Imaging.jpeg; //注意:要加入jpej 否侧浏览图…

Listener

简介 概念:Listeener表示监听器,是JavaWeb三大组件(Servlet,Filter,Listener)之一 监听器就是可以在application,session,request三个对象创建,销毁或者往其中添加修改…

Python语言在地球科学领域中的应用

Python是功能强大、免费、开源,实现面向对象的编程语言,Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台(x86和arm),Python简洁的语法和对动态输入的支持,再加上解释性语言的本质&…