From ebc4e04ca736411b60cae5d05cd762080c410748 Mon Sep 17 00:00:00 2001 From: toly <1981462002@qq.com> Date: Thu, 17 Dec 2020 18:05:07 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20AnimatedBuilder=E3=80=81CupertinoP?= =?UTF-8?q?opupSurface=E3=80=81TweenAnimationBuilder=E3=80=81RenderObjectT?= =?UTF-8?q?oWidgetAdapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/flutter.db | Bin 901120 -> 913408 bytes .../node1_base.dart | 33 +++++++++ .../AnimatedBuilder/node1_base.dart | 68 ++++++++++++++++++ .../TweenAnimationBuilder/node1_base.dart | 61 ++++++++++++++++ .../Container/node4_decoration.dart | 6 +- .../CupertinoPopupSurface/node1_base.dart | 62 ++++++++++++++++ lib/views/widgets/exp/other_unit.dart | 3 +- lib/views/widgets/exp/stateful_unit.dart | 2 + lib/views/widgets/exp/stateless_unit.dart | 1 + lib/views/widgets/widgets_map.dart | 19 ++++- 10 files changed, 248 insertions(+), 7 deletions(-) create mode 100644 lib/views/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart create mode 100644 lib/views/widgets/StatefulWidget/AnimatedBuilder/node1_base.dart create mode 100644 lib/views/widgets/StatefulWidget/TweenAnimationBuilder/node1_base.dart create mode 100644 lib/views/widgets/StatelessWidget/CupertinoPopupSurface/node1_base.dart diff --git a/assets/flutter.db b/assets/flutter.db index 5bc9a791b520b2a015f2ee39170765ddcd80a938..36c48aa2e49a072f33f67421e16be71fdd6783b8 100644 GIT binary patch delta 16990 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 Q-{o;tqAQq+L{H@Z5378P<^TWy delta 11135 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 diff --git a/lib/views/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart b/lib/views/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart new file mode 100644 index 0000000..c11f144 --- /dev/null +++ b/lib/views/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart @@ -0,0 +1,33 @@ + +import 'package:flutter/material.dart'; + + +/// create by 张风捷特烈 on 2020/9/21 +/// contact me by email 1981462002@qq.com +/// 说明: 289 RenderObjectToWidgetAdapter 根组件 RenderObject 和 Element 树的桥梁。 +/// +// { +// "widgetId": 289, +// "name": 'RenderObjectToWidgetAdapter 介绍', +// "priority": 1, +// "subtitle": +// "【container】 : 渲染对象 【RenderObjectWithChildMixin】\n" +// "【child】 : 子组件 【Widget】\n" +// "【debugShortDescription】 : 调试简介 【String】", +// } + +class RenderObjectToWidgetAdapterDemo extends StatelessWidget { + final String info = + '该组件并没有什么太大的使用价值,但却非常有纪念意义。它是 Flutter 框架中最顶层的 Widget,它的 child 是 runApp 传入的组件,在 attachRootWidget 方法中被实例化。' + '它持有根渲染对象 RenderView ,负责创建根元素 RenderObjectToWidgetElement,是一个无名英雄,一个深藏功与名的组件。'; + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.blue.withOpacity(0.1), + padding: EdgeInsets.all(10), + margin: EdgeInsets.all(10), + child: Text(info), + ); + } +} diff --git a/lib/views/widgets/StatefulWidget/AnimatedBuilder/node1_base.dart b/lib/views/widgets/StatefulWidget/AnimatedBuilder/node1_base.dart new file mode 100644 index 0000000..01ca1c7 --- /dev/null +++ b/lib/views/widgets/StatefulWidget/AnimatedBuilder/node1_base.dart @@ -0,0 +1,68 @@ + +import 'package:flutter/material.dart'; + + +/// create by 张风捷特烈 on 2020/9/21 +/// contact me by email 1981462002@qq.com +/// 说明: 228 AnimatedBuilder 动画构造器 +/// 通过 builder 使动画对应的节点变为局部更新,并且可避免子组件刷新,减少构建的时间,提高动画性能。 +/// +// { +// "widgetId": 228, +// "name": 'AnimatedBuilder 使用案例', +// "priority": 1, +// "subtitle": +// "【animation】 : *可监听对象 【Listenable】\n" +// "【builder】 : *组件构造器 【TransitionBuilder】\n" +// "【child】 : 子组件 【Widget】", +// } + +class AnimatedBuilderDemo extends StatefulWidget { + @override + _AnimatedBuilderDemoState createState() => _AnimatedBuilderDemoState(); +} + +class _AnimatedBuilderDemoState extends State + with SingleTickerProviderStateMixin { + AnimationController controller; + + @override + void initState() { + super.initState(); + controller = AnimationController( + vsync: this, + lowerBound: 0.3, + upperBound: 1.0, + duration: const Duration(milliseconds: 500)) + ..forward(); + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + controller.forward(from: 0); + }, + child: AnimatedBuilder( + animation: controller, + builder: (ctx, child) { + return Transform.scale( + scale: controller.value, + child: Opacity(opacity: controller.value, child: child), + ); + }, + child: buildChild()), + ); + } + + Widget buildChild() => Container( + height: 100, + width: 100, + decoration: BoxDecoration(color: Colors.orange, shape: BoxShape.circle), + alignment: Alignment.center, + child: Text( + 'Toly', + style: TextStyle(fontSize: 40, color: Colors.white), + ), + ); +} diff --git a/lib/views/widgets/StatefulWidget/TweenAnimationBuilder/node1_base.dart b/lib/views/widgets/StatefulWidget/TweenAnimationBuilder/node1_base.dart new file mode 100644 index 0000000..38f8c8b --- /dev/null +++ b/lib/views/widgets/StatefulWidget/TweenAnimationBuilder/node1_base.dart @@ -0,0 +1,61 @@ + +import 'package:flutter/material.dart'; + +/// create by 张风捷特烈 on 2020/9/21 +/// contact me by email 1981462002@qq.com +/// 说明: 226 TweenAnimationBuilder 渐变动画构造器 +/// 通过渐变器 Tween 对相关属性进行渐变动画,通过 builder 进行局部构建,减少刷新范围。不需要自定义动画器,可指定动画时长、曲线、结束回调。 +/// +// { +// "widgetId": 226, +// "name": 'TweenAnimationBuilder 使用案例', +// "priority": 1, +// "subtitle": +// "【tween】 : *渐变器 【Tween】\n" +// "【duration】 : *时长 【Duration】\n" +// "【builder】 : *构造器 【ValueWidgetBuilder】\n" +// "【curve】 : 动画曲线 【Curve】\n" +// "【onEnd】 : 结束回调 【VoidCallback】\n" +// "【child】 : 子组件 【Widget】", +// } + +class TweenAnimationBuilderDemo extends StatefulWidget { + @override + _TweenAnimationBuilderDemoState createState() => + _TweenAnimationBuilderDemoState(); +} + +class _TweenAnimationBuilderDemoState extends State { + Color _value = Colors.red; + + @override + Widget build(BuildContext context) { + return TweenAnimationBuilder( + tween: ColorTween(begin: Colors.blue, end: _value), + duration: Duration(milliseconds: 800), + builder: (BuildContext context, Color color, Widget child) { + return GestureDetector( + onTap: () { + setState(() { + _value = _value == Colors.red ? Colors.blue : Colors.red; + }); + }, + child: Container( + width: 40, + height: 40, + + child: child, + decoration: BoxDecoration( + color: color, + borderRadius: BorderRadius.circular(5) + ), + ), + ); + }, + child: Icon( + Icons.android_outlined, + color: Colors.white, + ), + ); + } +} diff --git a/lib/views/widgets/StatelessWidget/Container/node4_decoration.dart b/lib/views/widgets/StatelessWidget/Container/node4_decoration.dart index febe711..15423df 100644 --- a/lib/views/widgets/StatelessWidget/Container/node4_decoration.dart +++ b/lib/views/widgets/StatelessWidget/Container/node4_decoration.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; class ContainerDecoration extends StatelessWidget { - static const rainbow = [ + final List rainbow = [ 0xffff0000, 0xffFF7F00, 0xffFFFF00, @@ -23,10 +23,10 @@ class ContainerDecoration extends StatelessWidget { 0xff0000FF, 0xff8B00FF ]; - + final List stops = [0.0, 1 / 6, 2 / 6, 3 / 6, 4 / 6, 5 / 6, 1.0]; @override Widget build(BuildContext context) { - var stops = [0.0, 1 / 6, 2 / 6, 3 / 6, 4 / 6, 5 / 6, 1.0]; + return Container(//容器 alignment: Alignment.center, width: 200, diff --git a/lib/views/widgets/StatelessWidget/CupertinoPopupSurface/node1_base.dart b/lib/views/widgets/StatelessWidget/CupertinoPopupSurface/node1_base.dart new file mode 100644 index 0000000..0806d45 --- /dev/null +++ b/lib/views/widgets/StatelessWidget/CupertinoPopupSurface/node1_base.dart @@ -0,0 +1,62 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +/// create by 张风捷特烈 on 2020/9/21 +/// contact me by email 1981462002@qq.com +/// 说明: 217 CupertinoPopupSurface 模糊弹出层 +/// ios 弹出框的圆角矩形模糊背景,源码中应用于 Cupertino 风格的对话框中。 +/// +// { +// "widgetId": 217, +// "name": 'CupertinoPopupSurface 使用', +// "priority": 1, +// "subtitle": +// "【isSurfacePainted】 : 是否绘白 【bool】\n" +// "【child】 : 子组件 【Widget】\n" +// "测试效果左侧 isSurfacePainted = false,右侧 isSurfacePainted = true", +// } + +class CupertinoPopupSurfaceDemo extends StatelessWidget { + final List rainbow = [ + 0xffff0000, + 0xffFF7F00, + 0xffFFFF00, + 0xff00FF00, + 0xff00FFFF, + 0xff0000FF, + 0xff8B00FF + ]; + + final List stops = [0.0, 1 / 6, 2 / 6, 3 / 6, 4 / 6, 5 / 6, 1.0]; + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + gradient: RadialGradient( + radius: 1.8, + stops: stops, + colors: rainbow.map((e) => Color(e)).toList())), + padding: EdgeInsets.all(10), + child: Wrap( + spacing: 10, + children: [ + buildCupertinoPopupSurface(false), + buildCupertinoPopupSurface(true), + ], + ), + ); + } + + Widget buildCupertinoPopupSurface(bool isSurfacePainted) { + return CupertinoPopupSurface( + isSurfacePainted: isSurfacePainted, + child: Container( + width: 150, + height: 100, + color: Colors.white.withOpacity(0.3), + alignment: Alignment.center, + ), + ); + } +} diff --git a/lib/views/widgets/exp/other_unit.dart b/lib/views/widgets/exp/other_unit.dart index bcb507c..276e2c5 100644 --- a/lib/views/widgets/exp/other_unit.dart +++ b/lib/views/widgets/exp/other_unit.dart @@ -8,4 +8,5 @@ library other_unit.dart; export '../Other/ErrorWidget/node1_base.dart'; export '../Other/Table/node1_base.dart'; export '../Other/RawImage/node1_base.dart'; -export '../Other/PerformanceOverlay/node1_base.dart'; \ No newline at end of file +export '../Other/PerformanceOverlay/node1_base.dart'; +export '../Other/RenderObjectToWidgetAdapter/node1_base.dart'; \ No newline at end of file diff --git a/lib/views/widgets/exp/stateful_unit.dart b/lib/views/widgets/exp/stateful_unit.dart index d6af615..cf66146 100644 --- a/lib/views/widgets/exp/stateful_unit.dart +++ b/lib/views/widgets/exp/stateful_unit.dart @@ -77,6 +77,8 @@ export '../StatefulWidget/CupertinoScrollbar/node1_base.dart'; export '../StatefulWidget/RawGestureDetector/node1_base.dart'; export '../StatefulWidget/Dismissible/node1_base.dart'; +export '../StatefulWidget/AnimatedBuilder/node1_base.dart'; +export '../StatefulWidget/TweenAnimationBuilder/node1_base.dart'; export '../StatefulWidget/RawKeyboardListener/node1_base.dart'; export '../StatefulWidget/Dismissible/node2_direction.dart'; diff --git a/lib/views/widgets/exp/stateless_unit.dart b/lib/views/widgets/exp/stateless_unit.dart index 28d4bfc..9d18fe8 100644 --- a/lib/views/widgets/exp/stateless_unit.dart +++ b/lib/views/widgets/exp/stateless_unit.dart @@ -45,6 +45,7 @@ export '../StatelessWidget/CupertinoNavigationBarBackButton/node1_base.dart'; export '../StatelessWidget/CupertinoTheme/node1_base.dart'; export '../StatelessWidget/CupertinoTheme/node2_use.dart'; +export '../StatelessWidget/CupertinoPopupSurface/node1_base.dart'; export '../StatelessWidget/Divider/node1_base.dart'; export '../StatelessWidget/Divider/node2_height.dart'; diff --git a/lib/views/widgets/widgets_map.dart b/lib/views/widgets/widgets_map.dart index eb4bb8d..a65cc99 100644 --- a/lib/views/widgets/widgets_map.dart +++ b/lib/views/widgets/widgets_map.dart @@ -7,9 +7,7 @@ import 'exp/proxy_unit.dart'; import 'exp/other_unit.dart'; import 'exp/sliver_unit.dart'; -/// create by 张风捷特烈 on 2020-03-04 -/// contact me by email 1981462002@qq.com -/// 说明: +/// AUTO CREATED BY [张风捷特烈] , DON'T MODIFY! class WidgetsMap { static List map(String name) { @@ -90,6 +88,13 @@ class WidgetsMap { return [ ViewportDemo(), ]; + case "CupertinoPopupSurface": + return [ + CupertinoPopupSurfaceDemo(), + ]; case "RenderObjectToWidgetAdapter": + return [ + RenderObjectToWidgetAdapterDemo(), + ]; case "SliverPrototypeExtentList": return [ SliverPrototypeExtentListDemo(), @@ -118,6 +123,14 @@ class WidgetsMap { return [ SafeAreaDemo(), ]; + case "AnimatedBuilder": + return [ + AnimatedBuilderDemo(), + ]; + case "TweenAnimationBuilder": + return [ + TweenAnimationBuilderDemo(), + ]; case "WidgetInspector": return [ WidgetInspectorDemo(),