Flutter 技术入门与实战 (17):开启 Flutter 之旅 2.3.1

阅读数:6 2019 年 12 月 15 日 18:47

Flutter技术入门与实战(17):开启Flutter之旅 2.3.1

(创建应用主题)

内容简介
第 1 章介绍 Flutter 的基本概念,并搭建第 yi 个 Flutter 程序,来感受一下 Flutter 之美。
第 2 章介绍几个重要知识点,如入口程序、Material Design、Flutter 主题、无状态组件和有状态组件、使用包资源、Http 请求。
第 3 章简单介绍 Dart 语言。Dart 语言是 Flutter SDK 指定的语言,我们很有必要补充一下它的基础知识,包括语法特性、基本语句、面向对象等。
第 4 章介绍常用组件。Flutter 里有一个非常重要的核心理念:一切皆为组件,本章主要讲解开发中用得 * 频繁的组件,如容器组件、图片组件、文本组件、图标组件和表单组件等。
第 5 章介绍 Material Design 风格的组件,Material Design 风格是一种非常有质感的设计风格,并提供一些默认的交互动画。本章将分类介绍这些组件。
第 6 章介绍 Cupertino 风格的组件,这是一类 iOS 风格的组件,如 CupertinoTabBar、CupertinoPageScaffold、CupertinoTabScaffold、CupertinoTabView 等。
第 7 章介绍页面布局的基础知识和技巧,如基础布局处理、宽高尺寸处理、列表及表格布局等,* 后通过一个综合布局示例来演示如何编写复杂的页面。
第 8 章介绍如何处理手势,如轻击、拖动和缩放等。Flutter 中提供 GestureDetector 进行手势检测,并为手势检测提供了相应的监听。
第 9 章介绍如何加载、处理、展示资源和图片,如添加资源和图片、自定义字体等。
第 10 章介绍路由及导航是如何处理的,包括页面的渲染以及数据传递。
第 11 章介绍组件装饰和视觉效果的处理,如 Opacity(透明度处理)、DecoratedBox(装饰盒子)、RotatedBox(旋转盒子)、Clip(剪裁处理)和 CustomPainter(自定义画板)。
第 12 章介绍动画效果的制作,包含两个动画组件的使用:用 AnimatedOpacity 实现渐变效果、用 Hero 实现页面切换动画。
第 13 章介绍 Flutter 插件开发的入门知识。Flutter 插件可以和原生程序打交道,比如调用蓝牙、启用 WIFI、打开手电筒,等等。
第 14 章介绍开发工具及使用技巧,介绍几款常用的 IDE 工具,从代码的编写、辅助功能、程序调试、性能分析等多方面讲解工具及使用技巧。
第 15 章介绍测试与发布应用,包括:测试应用、发布 Android 版和 iOS 版 App。
第 16 章通过一个综合案例介绍如何使用 Flutter 实现即时通讯 App 的界面。

创建主题的方法是将 ThemeData 提供给 MaterialApp 构造函数,这样就可以在整个应用程序中共享包含颜色和字体样式的主题。ThemeData 的主要属性如表 2-1 所示。

表 2-1 ThemeData 属性及描述
属性名 类型 说明
accentColor Color 前景色(文本、按钮等)
accentColorBrightness Brightness accentColor 的亮度。用于确定放置在突出颜色顶部的文本和图标的颜色(例如 FloatingButton 上的图标)
accentIconTheme IconThemeData 与突出颜色对照的图片主题
accentTextTheme TextTheme 与突出颜色对照的文本主题
backgroundColor Color 与 primaryColor 对比的颜色(例如:用作进度条的剩余部分)
bottomAppBarColor Color BottomAppBar 的默认颜色
brightness Brightness 应用程序整体主题的亮度。由按钮等 Widget 使用,以确定在不使用主色或强调色时要选择的颜色
buttonColor Color Material 中 RaisedButtons 使用的默认填充色
buttonTheme ButtonThemeData 定义了按钮等控件的默认配置,如 RaisedButton 和 FlatButton
canvasColor Color MaterialType.canvas Material 的默认颜色
cardColor Color Material 被用作 Card 时的颜色
chipTheme ChipThemeData 用于渲染 Chip 的颜色和样式
dialogBackgroundColor Color Dialog 元素的背景色
disabledColor Color 用于 Widget 无效的颜色,包括任何状态。例如禁用复选框
dividerColor Color Dividers 和 PopupMenuDividers 的颜色,也用于 ListTiles 中间和 DataTables 的每行中间
errorColor Color 用于输入验证错误的颜色,例如在 TextField 中
hashCode int 对象的哈希值
highlightColor Color 用于类似墨水喷溅动画或指示菜单被选中的高亮颜色
iconTheme IconThemeData 与卡片和画布颜色形成对比的图标主题
indicatorColor Color TabBar 中选项选中的指示器颜色
inputDecorationTheme InputDecorationTheme InputDecorator、TextField 和 TextFormField 的默认 Input-Decoration 值基于此主题
platform TargetPlatform Widget 需要适配的目标类型
primaryColor Color App 主要部分的背景色(ToolBar、Tabbar 等)
primaryColorBrightness Brightness primaryColor 的亮度
primaryColorDark Color primaryColor 的较暗版本
primaryColorLight Color primaryColor 的较亮版本
primaryIconTheme IconThemeData 一个与主色对比的图片主题
primaryTextTheme TextThemeData 一个与主色对比的文本主题
scaffoldBackgroundColor Color 作为 Scaffold 基础的 Material 默认颜色,典型 Material 应用或应用内页面的背景颜色
secondaryHeaderColor Color 有选定行时 PaginatedDataTable 标题的颜色
selectedRowColor Color 选中行时的高亮颜色
sliderTheme SliderThemeData 用于渲染 Slider 的颜色和形状
splashColor Color 墨水喷溅的颜色
splashFactory InteractiveInkFeatureFactory 定义 InkWall 和 InkResponse 生成的墨水喷溅的外观
textSelectionColor Color 文本字段中选中文本的颜色,例如 TextField
textSelectionHandleColor Color 用于调整当前文本的哪个部分的句柄颜色
textTheme TextTheme 与卡片和画布对比的文本颜色
toggleableActiveColor Color 用于突出显示切换 Widget(如 Switch、Radio 和 Checkbox)的活动状态的颜色
unselectedWidgetColor Color 用于 Widget 处于非活动(但已启用)状态的颜色。例如,未选中的复选框。通常与 accentColor 形成对比
runtimeType Type 表示对象的运行时类型

如果没有提供主题,Flutter 将创建一个默认主题。主题数据的示例代码如下:

复制代码
new MaterialApp(
title: title,
theme: new ThemeData(
brightness: Brightness.dark,
primaryColor: Colors.lightBlue[800],
accentColor: Colors.cyan[600],
),
);

Flutter技术入门与实战(17):开启Flutter之旅 2.3.1

购书地址 https://item.jd.com/12526484.html?dist=jd

评论

发布