内容简介 本书秉承Flutter框架“一切皆为组件”的核心设计思想,配合大量实例,系统且全面地介绍Flutter 2.0中各式各样的组件。同时,穿插于全书的“Flutter框架小知识”和“Dart语法小贴士”也可帮助刚入门的读者迅速掌握框架和编程语言中必备的基础知识。 全书大致按照“由入门到精通”划分,又按功能板块细分,共分为3部分:基础篇(第1~5章)详细介绍基础布局、文字、图片、按钮、事件流、滚动列表等常用组件,既适合Flutter新手,也可帮助有一定经验的开发者查漏补缺。进阶篇(第6~12章)介绍更多与布局、动画、导航、人机交互、弹窗等功能相关的组件。最后扩展篇(第13~15章)则重点介绍如Sliver机制、高效渲染、打破约束、自定义布局等难点。 本书既可作为Flutter入门书籍,也可作为计算机软件从业人员的参考书,在工作或实战中遇到疑惑时通过本书附录中的索引,迅速查阅相关章节。 第1章基础布局 1.1 什么是组件 1.1.1FlutterLogo 1.1.2 Placeholder 1.1.3 Container 1.2 如何拆分布局 1.2.1 Column 1.2.2 Row 1.2.3 Wrap 1.2.4 Stack 1.2.5 Positioned 1.3 组件尺寸和位置 1.3.1 SizedBox 1.3.2 Align 1.3.3 Center 第2章文字与图片 2.1 文字 2.1.1 Text 2.1.2 DefaultTextStyle 2.1.3 RichText 2.2 图标与图片 2.2.1 Icon 2.2.2 IconTheme 2.2.3 Image 2.2.4 FadeInImage 第3章用户输入 3.1 文本框 3.1.1 TextField 3.1.2 CupertinoTextField 3.2 按钮 3.2.1 ElevatedButton 3.2.2 TextButton 3.2.3 CupertinoButton 第4章异步操作 4.1 进度条 4.1.1 CircularProgressIndicator 4.1.2 LinearProgressIndicator 4.1.3 CupertinoActivityIndicator 4.2 异步显示 4.2.1 FutureBuilder 4.2.2 StreamBuilder 第5章分页呈现 5.1 列表和网格 5.1.1 ListView 5.1.2 ListWheelScrollView 5.1.3 ReorderableListView 5.1.4 GridView 5.1.5 PageView 5.2 滚动监听和控制 5.2.1 Scrollbar 5.2.2 RefreshIndicator 5.2.3 Dismissible 5.2.4 ScrollConfiguration 5.2.5 NotificationListener 5.2.6 SingleChildScrollView 第6章进阶布局 6.1 边界 6.1.1 Padding 6.1.2 SafeArea 6.1.3 FittedBox 6.1.4 MediaQuery 6.2 弹性布局 6.2.1 Flex 6.2.2 Expanded 6.2.3 Flexible 6.2.4 Spacer 6.3 约束 6.3.1 ConstrainedBox 6.3.2 LimitedBox 6.3.3 LayoutBuilder 6.3.4 FractionallySizedBox 第7章过渡动画 7.1 渐变效果 7.1.1 AnimatedContainer 7.1.2 AnimatedPadding 7.1.3 AnimatedPositioned 7.1.4 AnimatedOpacity 7.1.5 AnimatedDefaultTextStyle 7.2 组件切换 7.2.1 AnimatedSwitcher 7.2.2 AnimatedCrossFade 第8章人机交互 8.1 触摸检测 8.1.1 GestureDetector 8.1.2 Listener 8.1.3 MouseRegion 8.1.4 IgnorePointer 8.1.5 AbsorbPointer 8.2 拖放 8.2.1 Draggable 8.2.2 DragTarget 8.2.3 LongPressDraggable 第9章悬浮与弹窗 9.1 悬浮 9.1.1 OverlayEntry 9.1.2 CompositedTransformTarget 9.1.3 CompositedTransformFollower 9.2 弹窗 9.2.1 AlertDialog 9.2.2 CupertinoAlertDialog 9.2.3 SimpleDialog 9.2.4 CupertinoPopupSurface 9.2.5 ModalBarrier 9.3 底部弹窗 9.3.1 BottomSheet 9.3.2 DraggableScrollableSheet 9.3.3 CupertinoActionSheet 第10章界面导航 10.1 导航 10.1.1 Navigator 10.1.2 WillPopScope 10.1.3 Hero 10.2 程序结构 4.1.1 WidgetsApp 10.2.1 MaterialApp 10.2.2 CupertinoApp 第11章风格组件 11.1 Material风格 11.1.1 AppBar 11.1.2 BackButton 11.1.3 BottomNavigationBar 11.1.4 ButtonBar 11.1.5 Card 11.1.6 Checkbox 11.1.7 Chip 11.1.8 CircleAvatar 11.1.9 DataTable 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.2 Cupertino风格 11.2.1 CupertinoContextMenu 11.2.2 CupertinoDatePicker 11.2.3 CupertinoNavigationBar 11.2.4 CupertinoPageScaffold 11.2.5 CupertinoPicker 11.2.6 CupertinoSegmentedControl 11.2.7 CupertinoSlider 11.2.8 CupertinoSlidingSegmentedControl 11.2.9 CupertinoSwitch 11.2.10CupertinoTabBar 11.2.11CupertinoTabScaffold 11.2.12CupertinoTabView 11.2.13CupertinoTimePicker 第12章进阶动画 12.1 如何选择动画组件 12.2 显式动画 12.2.1 RotationTransition 12.2.2 FadeTransition 12.2.3 ScaleTransition 12.2.4 SizeTransition 12.2.5 SlideTransition 12.2.6 PositionedTransition 12.2.7 DecoratedBoxTransition 12.2.8 AnimatedIcon 12.3 自定义动画 12.3.1 TweenAnimationBuilder 12.3.2 AnimatedBuilder 12.3.3 AnimatedWidget 第13章滚动布局 13.1 Sliver 13.1.1 CustomScrollView 13.1.2 SliverToBoxAdapter 13.1.3 SliverList 13.1.4 SliverFixedExtentList 13.1.5 SliverPrototypeExtentList 13.1.6 SliverGrid 13.1.7 SliverFillViewport 13.2 Sliver导航条 13.2.1 SliverAppBar 13.2.2 FlexibleSpaceBar 13.2.3 SliverPersistentHeader 13.3 更多Sliver组件 13.3.1 SliverFillRemaining 13.3.2 SliverSafeArea 13.3.3 SliverPadding 13.3.4 SliverLayoutBuilder 13.3.5 SliverOpacity 13.3.6 SliverVisibility 13.3.7 SliverAnimatedList 第14章渲染与特效 14.1 组件修饰 14.1.1 Opacity 14.1.2 DecoratedBox 14.1.3 PhysicalModel 14.1.4 RotatedBox 14.1.5 Transform 14.1.6 FractionalTranslation 14.1.7 ImageFiltered 14.1.8 BackdropFilter 14.1.9 ShaderMask 14.2 裁剪边框 14.2.1 ClipOval 14.2.2 ClipRect 14.2.3 ClipRRect 14.2.4 ClipPath 第15章深入布局 15.1 测量尺寸 15.1.1 IntrinsicWidth 15.1.2 IntrinsicHeight 15.1.3 AspectRatio 15.1.4 PreferredSize 15.2 性能与状态 15.2.1 Offstage 15.2.2 Visibility 15.2.3 IndexedStack 15.2.4 RepaintBoundary 15.3 打破约束 15.3.1 UnconstrainedBox 15.3.2 OverflowBox 15.3.3 SizedOverflowBox 15.4 深度定制 15.4.1 CustomSingleChildLayout 15.4.2 CustomMultiChildLayout 15.4.3 Flow 15.4.4 CustomPaint目 录