Flutter组件详解与实战/计算机技术开发与应用丛书
正版保障 假一赔十 可开发票
¥
52.76
4.8折
¥
109
全新
库存30件
作者[加]王浩然
出版社清华大学出版社有限公司
ISBN9787302594208
出版时间2021-10
装帧平装
开本16开
定价109元
货号11445181
上书时间2024-11-29
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
王浩然(Bradley Wang),现就职于美国硅谷互联网创业公司温哥华分部,担任软件架构师。毕业于加拿大顶尖工程学院,滑铁卢大学计算机工程专业。曾任职多家五百强企业如 IBM,通用电气,TD银行等。有近二十年桌面应用开发经历,自2011年起开始从事手机APP以及Web开发,2018年初带领其公司团队使用Flutter,大幅提升开发效率。常活跃于各大英文开发者社区,GitHub,并在技术社区 Stack Overflow 兼任管理职责。
目录
目录
基础篇
第1章基础布局
1.1什么是组件
1.1.1FlutterLogo
1.1.2Placeholder
1.1.3Container
1.2如何拆分布局
1.2.1Column
1.2.2Row
1.2.3Wrap
1.2.4Stack
1.2.5Positioned
1.3组件尺寸和位置
1.3.1SizedBox
1.3.2Align
1.3.3Center
第2章文字与图片
2.1文字
2.1.1Text
2.1.2DefaultTextStyle
2.1.3RichText
2.2图标与图片
2.2.1Icon
2.2.2IconTheme
2.2.3Image
2.2.4FadeInImage
第3章用户输入
3.1文本框
3.1.1TextField
3.1.2CupertinoTextField
3.2按钮
3.2.1ElevatedButton
3.2.2TextButton
3.2.3CupertinoButton
第4章异步操作(45min)
4.1进度条
4.1.1CircularProgressIndicator
4.1.2LinearProgressIndicator
4.1.3CupertinoActivityIndicator
4.2异步显示
4.2.1FutureBuilder
4.2.2StreamBuilder
第5章分页呈现(34min)
5.1列表和网格
5.1.1ListView
5.1.2ListWheelScrollView
5.1.3ReorderableListView
5.1.4GridView
5.1.5PageView
5.2滚动监听和控制
5.2.1Scrollbar
5.2.2RefreshIndicator
5.2.3Dismissible
5.2.4ScrollConfiguration
5.2.5NotificationListener
5.2.6SingleChildScrollView
进阶篇
第6章进阶布局(19min)
6.1边界
6.1.1Padding
6.1.2SafeArea
6.1.3FittedBox
6.1.4MediaQuery
6.2弹性布局
6.2.1Flex
6.2.2Expanded
6.2.3Flexible
6.2.4Spacer
6.3约束
6.3.1ConstrainedBox
6.3.2LimitedBox
6.3.3LayoutBuilder
6.3.4FractionallySizedBox
第7章过渡动画(19min)
7.1渐变效果
7.1.1AnimatedContainer
7.1.2AnimatedPadding
7.1.3AnimatedPositioned
7.1.4AnimatedOpacity
7.1.5AnimatedDefaultTextStyle
7.2组件切换
7.2.1AnimatedSwitcher
7.2.2AnimatedCrossFade
第8章人机交互
8.1触摸检测
8.1.1GestureDetector
8.1.2Listener
8.1.3MouseRegion
8.1.4IgnorePointer
8.1.5AbsorbPointer
8.2拖放
8.2.1Draggable
8.2.2DragTarget
8.2.3LongPressDraggable
第9章悬浮与弹窗(13min)
9.1悬浮
9.1.1OverlayEntry
9.1.2CompositedTransformTarget
9.1.3CompositedTransformFollower
9.2弹窗
9.2.1AlertDialog
9.2.2CupertinoAlertDialog
9.2.3SimpleDialog
9.2.4CupertinoPopupSurface
9.2.5ModalBarrier
9.3底部弹窗
9.3.1BottomSheet
9.3.2DraggableScrollableSheet
9.3.3CupertinoActionSheet
第10章界面导航
10.1导航
10.1.1Navigator
10.1.2WillPopScope
10.1.3Hero
10.2程序结构
10.2.1WidgetsApp
10.2.2MaterialApp
10.2.3CupertinoApp
扩展篇
第11章风格组件
11.1Material风格
11.1.1AppBar
11.1.2BackButton
11.1.3BottomNavigationBar
11.1.4ButtonBar
11.1.5Card
11.1.6Checkbox
11.1.7Chip
11.1.8CircleAvatar
11.1.9DataTable
11.1.10DatePickerDialog
11.1.11Divider
11.1.12Drawer
11.1.13DropdownButton
11.1.14ExpandIcon
11.1.15ExpansionTile
11.1.16FloatingActionButton
11.1.17IconButton
11.1.18Ink
11.1.19InkResponse
11.1.20ListTile
11.1.21Material
11.1.22OutlinedButton
11.1.23PopupMenuButton
11.1.24Radio
11.1.25Scaffold
11.1.26Slider
11.1.27SnackBar
11.1.28Stepper
11.1.29Switch
11.1.30TabBar
11.1.31TimePickerDialog
11.1.32ToggleButtons
11.1.33Tooltip
11.2Cupertino风格
11.2.1CupertinoContextMenu
11.2.2CupertinoDatePicker
11.2.3CupertinoNavigationBar
11.2.4CupertinoPageScaffold
11.2.5CupertinoPicker
11.2.6CupertinoSegmentedControl
11.2.7CupertinoSlider
11.2.8CupertinoSlidingSegmentedControl
11.2.9CupertinoSwitch
11.2.10CupertinoTabBar
11.2.11CupertinoTabScaffold
11.2.12CupertinoTabView
11.2.13CupertinoTimePicker
第12章进阶动画(67min)
12.1如何选择动画组件
12.2显式动画
12.2.1RotationTransition
12.2.2FadeTransition
12.2.3ScaleTransition
12.2.4SizeTransition
12.2.5SlideTransition
12.2.6PositionedTransition
12.2.7DecoratedBoxTransition
12.2.8AnimatedIcon
12.3自定义动画
12.3.1TweenAnimationBuilder
12.3.2AnimatedBuilder
12.3.3AnimatedWidget
第13章滚动布局
13.1Sliver
13.1.1CustomScrollView
13.1.2SliverToBoxAdapter
13.1.3SliverList
13.1.4SliverFixedExtentList
13.1.5SliverPrototypeExtentList
13.1.6SliverGrid
13.1.7SliverFillViewport
13.2Sliver导航条
13.2.1SliverAppBar
13.2.2FlexibleSpaceBar
13.2.3SliverPersistentHeader
13.3更多的Sliver组件
13.3.1SliverFillRemaining
13.3.2SliverSafeArea
13.3.3SliverPadding
13.3.4SliverLayoutBuilder
13.3.5SliverOpacity
13.3.6SliverVisibility
13.3.7SliverAnimatedList
第14章渲染与特效
14.1组件修饰
14.1.1Opacity
14.1.2DecoratedBox
14.1.3PhysicalModel
14.1.4RotatedBox
14.1.5Transform
14.1.6FractionalTranslation
14.1.7ImageFiltered
14.1.8BackdropFilter
14.1.9ShaderMask
14.2裁剪边框
14.2.1ClipOval
14.2.2ClipRect
14.2.3ClipRRect
14.2.4ClipPath
第15章深入布局(15min)
15.1测量尺寸
15.1.1IntrinsicWidth
15.1.2IntrinsicHeight
15.1.3AspectRatio
15.1.4PreferredSize
15.2性能与状态
15.2.1Offstage
15.2.2Visibility
15.2.3IndexedStack
15.2.4RepaintBoundary
15.3打破约束
15.3.1UnconstrainedBox
15.3.2OverflowBox
15.3.3SizedOverflowBox
15.4深度定制
15.4.1CustomSingleChildLayout
15.4.2CustomMultiChildLayout
15.4.3Flow
15.4.4CustomPaint
附录A
内容摘要
第3章 用 户 输 入 用户输入是大部分应用程序必不可少的环节,本章将介绍2种最基本的用户输入类型,分别是文本框和按钮。更复杂的用户操作,如滑动手势和拖放等,可参考第8章“人机交互”。 3.1文本框 文本框可以让用户在应用程序中输入文本内容,例如搜索栏、聊天窗口的输入区域、表单中需要填写的快递信息或者登录界面的用户名和密码等地方都能找到文本框的身影。在Flutter框架中,最常见的文本框有TextField和CupertinoTextField这2个组件,分别对应安卓的Material风格和iOS的Cupertino风格。 3.1.1TextField TextField组件是Flutter中最常用的文本框组件。它的基本用法很好简单,同时又支持各式各样的自定义。该组件虽然没有任何必传参数,但实战中经常需要传入onSubmitted参数,用于在用户完成输入时处理业务逻辑。例如,可将用户输入的内容打印至终端,代码如下: TextField( onSubmitted: (value) => print("submitted: $value"), ) 图31默认样式的文本框 运行效果如图31所示。 TextField共有5种状态: 无焦点、无焦点且错误、有焦点、有焦点且错误、禁用。通常有焦点时TextField需要呈现出与众不同的样式,帮助用户辨认输入的文字将被录入哪个文本框。禁用的文本框(enabled属性为false时)无法被用户选中,因此不可能有焦点。另外,这里的错误不是指程序运行时抛出异常或报错,而是指TextField可以呈现出一种错误的状态,主要用于提示用户可能输入有误,例如电子邮箱不符合格式等。 在默认情况下,TextField组件遵循Material界面风格,自带一条下画线。当页面焦点不在文本框时下画线呈灰色,一旦获得页面焦点,下画线会自动变成程序当前主题风格的主颜色(如蓝色),并出现光标闪烁。若该设备没有物理键盘,则屏幕软键盘会同时弹出。当需要提示输入有误时,下画线则会变成红色。 1. InputDecoration TextField组件的大部分外观修饰可通过向decoration参数传入InputDecoration实现。而InputDecoration本身包罗万象,可以通过其构造函数传入大量参数,以便设置前缀、后缀、提示信息、边框、填充色及错误状态等需要显示的文本及样式。 1) 前缀 InputDecoration有3类前缀,如果同时设置则会依次显示,互不冲突。类是可用icon属性设置,在TextField前面插入一个图标。第2类是由prefixIcon(前缀图标)和prefixIconConstraints(前缀图标的布局约束)属性设置,用于定义显示在icon之后的前缀图标。第3类是prefix(前缀组件)、prefixText(前缀文本)和prefixStyle(前缀样式)属性设置,用于定义显示在icon和前缀图标之后的前缀文本。这里为了演示,同时使用上述3类前缀,代码如下: TextField( decoration: InputDecoration( icon: Icon(Icons.add),//图标(加号) prefixIcon: Icon(Icons.lock),//前缀图标(小锁) prefixText: "https://", //前缀文本内容 ), ) 图32文本框前缀在有无焦点时 的效果对比 运行时,icon属性设置的图标(加号)首先被显示出来,接着是prefixIcon属性设置的前缀图标(小锁)。这2个图标平时显示为灰色,并在文本框获得焦点时变成程序的主题色(如蓝色),并且在文本框获得焦点时,prefixText中的内容也会被显示出来,运行效果如图32所示。 上例代码中没有用到以下几个属性: 首先prefixIconConstraints用于定义prefixIcon属性中图标的布局约束,例如规定最小宽度等。另外,prefix属性和prefixText属性只能二选一,前者可以接收任何Widget类型,因此可以用于显示任意组件,而后者则直接接收String类型,故只支持文本。若选用prefixText使用文本,则可以用prefixStyle属性修改文本样式。 2) 后缀 InputDecoration还有3类设置后缀的属性。类是counter、counterText、counterStyle等属性,用于定义TextField的计数器。第2类是suffixIcon(后缀图标)和suffixIconConstraints(后缀图标的布局约束)属性,用于定义显示TextField末尾处的后缀图标。第3类是suffix(后缀组件)、suffixText(后缀文本)和suffixStyle(后缀样式)属性,用于定义后缀文本。例如,可同时设置这3类后缀,代码如下:许或禁止的字符串,而且还支持直接传入正规表达式(RegExp)作为筛选条件。 实战中,最常使用的是BlacklistingTextInputFormatter和WhitelistingTextInputFormatter这2个继承于TextInputFormatter的类,分别对应“黑名单”和“白名单”。在2020年8月更新的Flutter版本v1.20.0中,为响应“计算机术语应尽量避免不必要的种族歧视”的号召,将这2类更改合并为FilteringTextInputFormatter类,并提供了2个构造函数,分别是allow(允许)和deny(禁止)。这2个构造函数都可以接收一个字符串或正规表达式作为筛选条件,并支持可选的replacementString参数,用于将筛选出的词语替换为任意其
主编推荐
本书共分为基础篇、进阶篇与扩展篇3部分,并配有大量Flutter 2.0代码实例。读者既可以顺序阅读全书,以增加和巩固自身的知识储备,也可先快速浏览并简单熟悉这些组件后,在实战或工作中遇到实际需求时再详细阅读相关章节。另外,有经验的开发者还可以通过本书附录中的索引迅速查询所有书中提及的Flutter组件。
精彩内容
本书秉承Flutter框架“一切皆为组件”的核心设计思想,配合大量实例,系统且全面地介绍Flutter 2.0中各式各样的组件。同时,穿插于全书的“Flutter框架小知识”和“Dart语法小贴士”也可帮助刚入门的读者迅速掌握框架和编程语言中必备的基础知识。全书大致按照“由入门到精通”划分,又按功能板块细分,共分为3部分:基础篇(第1~5章)详细介绍基础布局、文字、图片、按钮、事件流、滚动列表等常用组件,既适合Flutter新手,也可帮助有一定经验的开发者查漏补缺。进阶篇(第6~12章)介绍更多与布局、动画、导
— 没有更多了 —
以下为对购买帮助不大的评价