From c10633f52645cf47ca733a680ac8269de4a71a25 Mon Sep 17 00:00:00 2001 From: XinLei <1652219550a@gmail.com> Date: Thu, 27 Jun 2019 23:33:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20Flutter=20weekly=20widget?= =?UTF-8?q?=20ValueListenableBuilder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 10244 -> 10244 bytes image/.DS_Store | Bin 6148 -> 14340 bytes image/value_listenable_builder.gif | Bin 0 -> 75368 bytes .../flutter_widget_of_the_week/README.md | 76 ++++++----- .../flutter_widget_of_the_week/lib/main.dart | 3 +- .../week30_value_listenable_builder.dart | 68 ++++++++++ .../lib/widget/widgets.dart | 3 +- .../provider_example/lib/generated/i18n.dart | 122 ++++++++++++++++++ .../example/provider_example/lib/screens.dart | 2 +- 9 files changed, 239 insertions(+), 35 deletions(-) create mode 100644 image/value_listenable_builder.gif create mode 100644 mecury_project/example/flutter_widget_of_the_week/lib/widget/week30_value_listenable_builder.dart create mode 100644 mecury_project/example/provider_example/lib/generated/i18n.dart diff --git a/.DS_Store b/.DS_Store index eb540be01e25e763bb1107f633e933700401545f..73c95c880155855a47915ff625fc526ebbd40ff7 100644 GIT binary patch delta 844 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 literal 0 HcmV?d00001 diff --git a/mecury_project/example/flutter_widget_of_the_week/README.md b/mecury_project/example/flutter_widget_of_the_week/README.md index f1ac678..39930b1 100644 --- a/mecury_project/example/flutter_widget_of_the_week/README.md +++ b/mecury_project/example/flutter_widget_of_the_week/README.md @@ -6,61 +6,73 @@ https://www.youtube.com/watch?v=lkF0TQJO0bA&list=PLOU2XLYxmsIL0pH0zWe_ZOHgGhZ7Ua 国内可看[bilibili](https://www.bilibili.com/video/av40410258) 有人搬运,带中文字幕 ## 样例 -### week1 +### week1 SafeArea ![](../../../image/week1.png) -### week2 +### week2 Expanded ![](../../../image/week2.png) -### week3 +### week3 Wrap ![](../../../image/week3.png) -### week4 +### week4 AnimatedContainer ![](../../../image/week4.png) -### week5 +### week5 Opacity ![](../../../image/week5.png) -### week6 +### week6 FutureBuilder ![](../../../image/week6.png) -### week7 +### week7 FadeTransition ![](../../../image/week7.png) -### week8 +### week8 FloatingActionButton ![](../../../image/week8.png) -### week9 +### week9 PageView ![](../../../image/week9.png) -### week10 +### week10 Table ![](../../../image/week10.png) -### week11 +### week11 SliverAppBar ![](../../../image/week11.png) -### week12 +### week12 SliverListGrid ![](../../../image/week12.png) -### week13 +### week13 FadeInImage ![](../../../image/week13.png) -### week14 +### week14 StreamBuilder ![](../../../image/week14.png) -### week15 +### week15 InheritedModel + +![](../../../image/week19.png) + + +### week16 ClipRRect ![](../../../image/week15.png) -### week16 -![](../../../image/week16.png) -### week17 -![](../../../image/week17.png) -### week18 +### Week17 Hero ![](../../../image/week18.png) -### week19 -![](../../../image/week19.png) -### week20 +### Week18 CustomPaint + +![](/workspace/flutter/Flutter-Notebook/image/week17.png) + +### week19 ToolTip + +![](../../../image/week16.png) + +### week20 FittedBox ![](../../../image/week20.png) -### week21 +### week21 LayoutBuilder + ![](../../../image/week21.png) -### week22 +### week22 AbsorbPointer ![](../../../image/week22.png) -### week23 +### week23 Transform ![](../../../image/week23.png) -### week24 +### week24 BackDropFilter ![](../../../image/week24.png) -### week25 +### week25 Align ![](../../../image/week25.png) -### week26 +### week26 Position ![](../../../image/week26.png) -### week27 +### week27 AnimatedBuilder ![](../../../image/week27.png) -### week28 +### week28 Dismissible ![](../../../image/week28.png) -### week29 +### week29 SizedBox ![](../../../image/week29.png) + +### Week30 ValueListenableBuilder + +![value_listenable_builder](/workspace/flutter/Flutter-Notebook/image/value_listenable_builder.gif) \ No newline at end of file diff --git a/mecury_project/example/flutter_widget_of_the_week/lib/main.dart b/mecury_project/example/flutter_widget_of_the_week/lib/main.dart index 9238fb6..1c21c23 100644 --- a/mecury_project/example/flutter_widget_of_the_week/lib/main.dart +++ b/mecury_project/example/flutter_widget_of_the_week/lib/main.dart @@ -40,7 +40,8 @@ class MyApp extends StatelessWidget { // home: Week26(), // home: Week27(), // home: Week28(), - home: Week29(), +// home: Week29(), + home: Week30(), ); } } diff --git a/mecury_project/example/flutter_widget_of_the_week/lib/widget/week30_value_listenable_builder.dart b/mecury_project/example/flutter_widget_of_the_week/lib/widget/week30_value_listenable_builder.dart new file mode 100644 index 0000000..166db8c --- /dev/null +++ b/mecury_project/example/flutter_widget_of_the_week/lib/widget/week30_value_listenable_builder.dart @@ -0,0 +1,68 @@ +import 'package:flutter/material.dart'; + +class Week30 extends StatelessWidget { + final ValueNotifier _counter = ValueNotifier(0); + final ColorProvider _colorProvider = ColorProvider(ColorModel()); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + ValueListenableBuilder( + valueListenable: _counter, + builder: (context, int value, _) { + return Text('current counter is : $value'); + }), + ValueListenableBuilder( + valueListenable: _colorProvider, + builder: (context, model, _) { + return Container( + height: 100, + width: 100, + color: model.color, + ); + }, + ), + ], + ), + ), + floatingActionButton: FloatingActionButton(onPressed: () { + _counter.value++; + _colorProvider.changeColor(); + }), + ); + } +} + +class ColorModel { + final List _colors = [ + Colors.redAccent, + Colors.lightGreen, + Colors.pinkAccent, + Colors.tealAccent, + Colors.blue, + ]; + int _currentColor = 0; + + get color => _colors[_currentColor]; + + changeColor() { + if (_currentColor != _colors.length - 1) + _currentColor++; + else + _currentColor = 0; + } +} + +class ColorProvider extends ValueNotifier { + ColorProvider(ColorModel value) : super(value); + + changeColor() { + value.changeColor(); + notifyListeners(); + } +} diff --git a/mecury_project/example/flutter_widget_of_the_week/lib/widget/widgets.dart b/mecury_project/example/flutter_widget_of_the_week/lib/widget/widgets.dart index 4452b26..0884655 100644 --- a/mecury_project/example/flutter_widget_of_the_week/lib/widget/widgets.dart +++ b/mecury_project/example/flutter_widget_of_the_week/lib/widget/widgets.dart @@ -26,4 +26,5 @@ export 'week25_align.dart'; export 'week26_position.dart'; export 'week27_animated_builder.dart'; export 'week28_dismissible.dart'; -export 'week29_sizedbox.dart'; \ No newline at end of file +export 'week29_sizedbox.dart'; +export 'week30_value_listenable_builder.dart'; \ No newline at end of file diff --git a/mecury_project/example/provider_example/lib/generated/i18n.dart b/mecury_project/example/provider_example/lib/generated/i18n.dart new file mode 100644 index 0000000..2dcf836 --- /dev/null +++ b/mecury_project/example/provider_example/lib/generated/i18n.dart @@ -0,0 +1,122 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +// ignore_for_file: non_constant_identifier_names +// ignore_for_file: camel_case_types +// ignore_for_file: prefer_single_quotes + +// This file is automatically generated. DO NOT EDIT, all your changes would be lost. +class S implements WidgetsLocalizations { + const S(); + + static const GeneratedLocalizationsDelegate delegate = + GeneratedLocalizationsDelegate(); + + static S of(BuildContext context) => Localizations.of(context, S); + + @override + TextDirection get textDirection => TextDirection.ltr; + +} + +class $en extends S { + const $en(); +} + +class GeneratedLocalizationsDelegate extends LocalizationsDelegate { + const GeneratedLocalizationsDelegate(); + + List get supportedLocales { + return const [ + Locale("en", ""), + ]; + } + + LocaleListResolutionCallback listResolution({Locale fallback, bool withCountry = true}) { + return (List locales, Iterable supported) { + if (locales == null || locales.isEmpty) { + return fallback ?? supported.first; + } else { + return _resolve(locales.first, fallback, supported, withCountry); + } + }; + } + + LocaleResolutionCallback resolution({Locale fallback, bool withCountry = true}) { + return (Locale locale, Iterable supported) { + return _resolve(locale, fallback, supported, withCountry); + }; + } + + @override + Future load(Locale locale) { + final String lang = getLang(locale); + if (lang != null) { + switch (lang) { + case "en": + return SynchronousFuture(const $en()); + default: + // NO-OP. + } + } + return SynchronousFuture(const S()); + } + + @override + bool isSupported(Locale locale) => _isSupported(locale, true); + + @override + bool shouldReload(GeneratedLocalizationsDelegate old) => false; + + /// + /// Internal method to resolve a locale from a list of locales. + /// + Locale _resolve(Locale locale, Locale fallback, Iterable supported, bool withCountry) { + if (locale == null || !_isSupported(locale, withCountry)) { + return fallback ?? supported.first; + } + + final Locale languageLocale = Locale(locale.languageCode, ""); + if (supported.contains(locale)) { + return locale; + } else if (supported.contains(languageLocale)) { + return languageLocale; + } else { + final Locale fallbackLocale = fallback ?? supported.first; + return fallbackLocale; + } + } + + /// + /// Returns true if the specified locale is supported, false otherwise. + /// + bool _isSupported(Locale locale, bool withCountry) { + if (locale != null) { + for (Locale supportedLocale in supportedLocales) { + // Language must always match both locales. + if (supportedLocale.languageCode != locale.languageCode) { + continue; + } + + // If country code matches, return this locale. + if (supportedLocale.countryCode == locale.countryCode) { + return true; + } + + // If no country requirement is requested, check if this locale has no country. + if (true != withCountry && (supportedLocale.countryCode == null || supportedLocale.countryCode.isEmpty)) { + return true; + } + } + } + return false; + } +} + +String getLang(Locale l) => l == null + ? null + : l.countryCode != null && l.countryCode.isEmpty + ? l.languageCode + : l.toString(); diff --git a/mecury_project/example/provider_example/lib/screens.dart b/mecury_project/example/provider_example/lib/screens.dart index 5bd51eb..4a8c7d1 100644 --- a/mecury_project/example/provider_example/lib/screens.dart +++ b/mecury_project/example/provider_example/lib/screens.dart @@ -5,7 +5,7 @@ import 'counter_model.dart'; class FirstScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final counter = Provider.of(context); + final counter = Provider.of(context,); final textSize = Provider.of(context); return Scaffold(