当前位置: 首页 > news >正文

Flutter——最详细(AppBar)使用教程

AppBar简介

Material Design 应用栏(标题栏)

使用场景:

顶部标题栏包括一些常用的菜单按钮

属性作用
leading左边工具视图
automaticallyImplyLeading左边图标的颜色
title标题视图
actions右边菜单按钮
flexibleSpace其高度将与应用栏的整体高度相同
bottom左侧底部文本内容
elevation底部阴影
scrolledUnderElevation左侧底部文本最大行数
shadowColor阴影样式
surfaceTintColor应用栏背景色以指示高度的表面色调叠加的颜色
shape标题栏样式选择
backgroundColor标题栏背景色
foregroundColor标题栏前景色
iconTheme用于工具栏图标的颜色、不透明度和大小
actionsIconTheme用于工具栏图标的颜色、不透明度和大小
primary此应用栏是否显示在屏幕顶部
centerTitle标题是否居中
excludeHeaderSemantics标题是否应使用标题 Semantics 包装
titleSpacing标题间距
toolbarOpacity应用栏的工具栏部分的不透明程度
bottomOpacity应用栏底部的不透明程度
toolbarHeight标题栏高度
leadingWidth左边视图宽度
toolbarTextStyle主题相关,所有AppBar的字体样式
titleTextStyle主题相关,所有title的字体样式
systemOverlayStyle顶部系统状态栏样式

leading、title、actions: 组合使用效果图

在这里插入图片描述

Scaffold(appBar: AppBar(title: Text('Flutter App Bar'),leading: IconButton(icon: Icon(Icons.arrow_back),onPressed: () {// 处理返回操作},),actions: [IconButton(icon: Icon(Icons.search),onPressed: () {// 处理搜索操作},),IconButton(icon: Icon(Icons.more_vert),onPressed: () {// 处理更多操作},),],),body: Container(),);

iconTheme: 效果图
要注意 iconTheme 单独使用时,会应用到所有的Icon样式
actionsIconTheme 两个属性组合使用时,则会区分Icon 样式

在这里插入图片描述
在这里插入图片描述

 Scaffold(appBar: AppBar(title: Text('Flutter App Bar'),leading: IconButton(icon: Icon(Icons.arrow_back),onPressed: () {// 处理返回操作},),iconTheme: IconThemeData(color: Colors.red, // 修改图标颜色size: 30.0,       // 修改图标大小),actionsIconTheme: IconThemeData(color: Colors.blue, // 修改图标颜色size: 30.0, // 修改图标大小),actions: [IconButton(icon: Icon(Icons.search),onPressed: () {// 处理搜索操作},),IconButton(icon: Icon(Icons.more_vert),onPressed: () {// 处理更多操作},),],),body: Container(),);

backgroundColor: 背景色 黄色
foregroundColor: 前景色 绿色 会覆盖标题的色值

在这里插入图片描述

Scaffold(appBar: AppBar(title: Text('我是绿色'),leading: IconButton(icon: Icon(Icons.arrow_back),onPressed: () {// 处理返回操作},),iconTheme: IconThemeData(color: Colors.red, // 修改图标颜色size: 30.0, // 修改图标大小),actionsIconTheme: IconThemeData(color: Colors.blue, // 修改图标颜色size: 30.0, // 修改图标大小),backgroundColor: Colors.yellow,foregroundColor: Colors.greenAccent,actions: [IconButton(icon: Icon(Icons.search),onPressed: () {// 处理搜索操作},),IconButton(icon: Icon(Icons.more_vert),onPressed: () {// 处理更多操作},),],),body: Container(),);

titleTextStyle: 标题字体样式
titleSpacing: 标题左边间距

在这里插入图片描述

Scaffold(appBar: AppBar(title: Text('我是紫色'),leading: IconButton(icon: Icon(Icons.arrow_back),onPressed: () {// 处理返回操作},),iconTheme: IconThemeData(color: Colors.red, // 修改图标颜色size: 30.0, // 修改图标大小),actionsIconTheme: IconThemeData(color: Colors.blue, // 修改图标颜色size: 30.0, // 修改图标大小),backgroundColor: Colors.yellow,foregroundColor: Colors.greenAccent,titleTextStyle: TextStyle(color: Colors.deepPurple,   // 修改标题文本颜色fontSize: 24.0,       // 修改标题文本字体大小fontWeight: FontWeight.bold,  // 修改标题文本字体粗细),titleSpacing: 30,actions: [IconButton(icon: Icon(Icons.search),onPressed: () {// 处理搜索操作},),IconButton(icon: Icon(Icons.more_vert),onPressed: () {// 处理更多操作},),],),body: Container(),);

centerTitle: 标题是否居中展示,默认靠左
toolbarHeight: 标题栏的高度

在这里插入图片描述

Scaffold(appBar: AppBar(title: Text(' App Bar'),leading: IconButton(icon: Icon(Icons.arrow_back),onPressed: () {// 处理返回操作},),iconTheme: IconThemeData(color: Colors.red, // 修改图标颜色size: 30.0, // 修改图标大小),actionsIconTheme: IconThemeData(color: Colors.blue, // 修改图标颜色size: 30.0, // 修改图标大小),backgroundColor: Colors.yellow,foregroundColor: Colors.greenAccent,centerTitle: true,titleTextStyle: TextStyle(color: Colors.deepPurple, // 修改标题文本颜色fontSize: 24.0, // 修改标题文本字体大小fontWeight: FontWeight.bold, // 修改标题文本字体粗细),toolbarHeight: 100,actions: [IconButton(icon: Icon(Icons.search),onPressed: () {// 处理搜索操作},),IconButton(icon: Icon(Icons.more_vert),onPressed: () {// 处理更多操作},),],),body: Container(),);

systemOverlayStyle: 系统状态栏样式修改

在这里插入图片描述

Scaffold(appBar: AppBar(title: Text(' App Bar'),leading: IconButton(icon: Icon(Icons.arrow_back),onPressed: () {// 处理返回操作},),iconTheme: IconThemeData(color: Colors.red, // 修改图标颜色size: 30.0, // 修改图标大小),actionsIconTheme: IconThemeData(color: Colors.blue, // 修改图标颜色size: 30.0, // 修改图标大小),backgroundColor: Colors.yellow,foregroundColor: Colors.greenAccent,centerTitle: true,titleTextStyle: TextStyle(color: Colors.deepPurple, // 修改标题文本颜色fontSize: 24.0, // 修改标题文本字体大小fontWeight: FontWeight.bold, // 修改标题文本字体粗细),toolbarHeight: 100,actions: [IconButton(icon: Icon(Icons.search),onPressed: () {// 处理搜索操作},),IconButton(icon: Icon(Icons.more_vert),onPressed: () {// 处理更多操作},),],systemOverlayStyle: SystemUiOverlayStyle(statusBarColor: Colors.blue, // 设置状态栏背景颜色statusBarIconBrightness: Brightness.dark, // 设置状态栏图标的亮度,dark表示黑色图标),),body: Container(),);

toolbarOpacity: 设置标题栏透明度 0.5

在这里插入图片描述

  toolbarOpacity: 0.5,

相关文章:

  • 【Linux精讲系列】——vim详解
  • 【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退
  • arima模型python代码
  • 网际报文协议ICMP及ICMP重定向实例详解
  • 数据结构—字符串
  • APISpace IP归属地查询接口案例代码
  • 【网络协议】聊聊HTTPDNS如何工作的
  • Python按类别和比例从Labelme数据集中划分出训练数据集和测试数据集
  • 开放智慧,助力学习——电大搜题,打开学无止境的新篇章
  • 使用IDEA让文本对比不在变的困难
  • R语言生物群落(生态)数据统计分析与绘图
  • 论文阅读——InternImage(cvpr2023)
  • docker中odoo项目路径
  • 修改iframe生成的pdf的比例
  • 服装展示服务预约小程序的内容如何
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • dva中组件的懒加载
  • ES6系列(二)变量的解构赋值
  • es的写入过程
  • export和import的用法总结
  • Java,console输出实时的转向GUI textbox
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • PV统计优化设计
  • spring boot下thymeleaf全局静态变量配置
  • spring security oauth2 password授权模式
  • v-if和v-for连用出现的问题
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从0到1:PostCSS 插件开发最佳实践
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 计算机常识 - 收藏集 - 掘金
  • 坑!为什么View.startAnimation不起作用?
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何设计一个微型分布式架构?
  • 三分钟教你同步 Visual Studio Code 设置
  • 时间复杂度与空间复杂度分析
  • 跳前端坑前,先看看这个!!
  • 《码出高效》学习笔记与书中错误记录
  • 回归生活:清理微信公众号
  • #Z0458. 树的中心2
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (003)SlickEdit Unity的补全
  • (1)(1.13) SiK无线电高级配置(五)
  • (10)STL算法之搜索(二) 二分查找
  • (2.2w字)前端单元测试之Jest详解篇
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (全注解开发)学习Spring-MVC的第三天
  • (一)80c52学习之旅-起始篇
  • (转)jdk与jre的区别
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全