From 7d065f17e6fb8d687c4b2c492ce3f7cadaa39dd9 Mon Sep 17 00:00:00 2001 From: toly <1981462002@qq.com> Date: Thu, 7 May 2020 16:55:18 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BD=BF=E7=94=A8Flutter1.17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/flutter.db | Bin 684032 -> 671744 bytes lib/views/pages/home/home_page.dart | 24 +++++++---- .../StatelessWidget/Builder/node1_base.dart | 38 ++++++++++++++++++ lib/views/widgets/exp/stateless_unit.dart | 1 + lib/views/widgets/widgets_map.dart | 4 ++ pubspec.lock | 31 ++++++-------- 6 files changed, 71 insertions(+), 27 deletions(-) create mode 100644 lib/views/widgets/StatelessWidget/Builder/node1_base.dart diff --git a/assets/flutter.db b/assets/flutter.db index 87d48261caf9bc2fbeb3a081c02ad4f44e05139d..1b78cafd28407ed03b2bc27bee039b79cfd6161e 100644 GIT binary patch delta 6367 zcmZ{nd3;n=vd7PU@9pkv5VnLsvnR-sg=_>!*d<|4fPgGv32O*jAV7fR+>iu9LJ}Lh z6&Qp86&D1Jq*z2@W>7@MmBB%s4*>6M-xK!)wxsY=$CQ|+S4KR=i3W+Tss%%5p?#*u9b4?Ow50rZ4+5$E96GoznfB9AZ?o? zwT&PpdIPdpuSIUqtC8#VO5{4d99g87A=m1q$Td12xmp)5#;-!X5V=avN3PU!kp+4V za)q9aT&`y!m+2hjQaug1L_dPe*V)L$dLlAUXCW8q@yLaG9CCpki=3~=Am`~($hkTl znX88*=jfrx*?Mp>e$CPYku$abAaZm+c6};QZ;@e<~xi{~#XL z{(~5Y(ji&Y;Erow^15#S37eD@6BqwrXS8_Arf1pIY}j=h*o8qz60uEuPG2zmFUf zllWhf;kS6y^o_qoPE1aWeQ@Nv7SGGm*Zk(3kdPex;0^jMiJr_EW&SkB_Ki>O6&D+m zobdlo?>9^Rof(6hF?k1-?KMuVdcKNR(mjtE)E!hOu82OolD*49>2$Kk6XIS3qbMCB zTv2+YlXUB1nlzx5?+=o;74eBZ5`4!c)x}+Px|4*r_uB&O4ue)M$eWY9ylL0QuS#|| zKCz!&IZ|@v$a7bYR5zY@snJv2c%b&`@r_rGH#Ao7zH*}a>a)kb^1X8X)hfS388q$O z-1PWsSN9!jDtYGW_Ko*E(b{<6@y4C|@k!&hgZ_ZWp|RxErpFI9)zo&o^4gBZ6Q0J+ z)%W8bJlc3{TVq-2)mL`ofGbBTuN>LZZ#T;=}QZyPloIdcsb~x43lrl?_^_8Iz8^Y5lrK8K-Uo3g-`CRYeMV&Y?xh8!QBfrPPS#qj?Ap=bV@KZ3!)(rhPdtD{cXyd+8kpW1ppm zm4(OTI4v{ibaWg`dBwsu(DEJnHHVDD^q9kf&7?ss!W*cC zEBpmA`?CX#KR)~+INFJ2xEx&65Z5YMENU=@7QV|d>;|tc=mj$p*bjGeZIi7$*UvJui7ps}xwUiTMl| zx1QBAMXfW$I)k>?EM67g584*8c-2tLB%}R7J<5I!Fd6MZOq=#VCpU%X_Opow-&!;P zzA0fvhIcm;!HSF{0na$+TF)4#iQ`E{`9ZYr;Sl^cc0<9-_^&@U4r7av1&{tLA)b{5W{~C)U@nXee=(8Zp$r z21Vh^HatQFZW=SeB5bl{CvI&|Hu?s(qG6D1^6r9fTAKwv&esa>Sgyj`5%UlH9r^}o zhg<#Kr?kryDD2Fiq7W6uFDNK!#%CMbm~z}9uJ6rbVm*jrNiiD|fHiah$Uha4V+IQs+?k%Cpb)LA6Tj$jV{yaJF3331V>EYahc5%Fk@$x}4 zpe%_G;{H`RMv;K$oJq1D8HH~Bp~VFLjRTSf@iPK1sR)#05($vb&gu*PI+=tnLwR{_ z9_+~Dxx8I@`$f3(o|e64a}+syUpV|Kb>j7_+xGj4Z>cW6Hn&+wabqniqF*?#zI6P` zkpuVaIoa9Sy_U?4oV_H!Aa`{^RL-@n&{*Sbda@S1u2wcQmFUKUN3XrKr^$P?ss6Dm zuWrAmn>qgx!KUN88f&-a;EZ2wd*a%`gMQ(?JN5mgTzh73V|o3TCBBdLvEIV}(D%h+ zk>guB&+OrwmP?b2`;NXnxwMsU?Ny_tdH+eIZ>s5N?W@g15!HFr?Hef_0lt!KDtrSn znbYTfUI|~+FEoG^toC*InT00wS}}h~VP^i!*^36vTpszKA9r_`U(nZ`g?o(bHa|Bn zZ;5->y|U6RD#|zRXV%4cvXv3;dvP5L_1!o~0}Y2`y<=0_Ldc%a(*z`s4-9Q2=obyx)-GC1H6b2vXCs56zR=|brJWBG75z8AiZ_ns5aF_B`3_~hq5z&%a zIN%ow{4ft-+&6C}wAshMaXL63Pn_?X|K{V-K7{ivUDv>rv;1kv%f_sRJ}>k4@XAIP zLUZ8J;@+Ds(}|;>IZ~$Mh<=hkRk#l5FZ>SUyQdYw(|_XEDP0TRzwlGC;e9ULCNth5 zjsn9k{U;1w7P$c?{tw^J;LRU+mGlNnDUJ7t@gAB_8}ME$5pOy;y-rk;7(lP%(=Vvl zn4uX|HW#BArSP{F;uaO2A(}uxCC*q5PA(JIQ^sm?*%RXa7#1cAuM(9}TEKDwYj!L|!xnF;cw=x$OsM4u7o4Um__XOeb+%Z;M5L!BnZ z33?g_9;Gl($e*OBP1PO2z9~{oEFi*UnJ;KvVcY*OO<%^cs5}`Z8Y=_({ zMG#Rz7(prsN{}}#FIGs9ZaLSW-5{@v2VSOg336#kYLFLGeigt%BbLC$HT@Rs-j7RRFpCu4F&bmree=z-5cgTD!-+43fy`{I-Cu= zr407TlX4M_g=HsYfuJ$a^cVS*i^fCM2l5oBePHx?`HrM<5dNub6b(0UgrbBvJk%57 z{!w^>bRsNkk~LPt7cx)MX|Jf|!j+6`&#>%_$2*W$d?7t(bKlDOyg!^1sz}i!NO!8^ z!eU<%Ghd!!U*by7<0YP=`@z)^brF9?=@gjMQ$5Q>O`z@z%UdgtVUa50$}~(;g%fWO zRjYL>)OPR(900CJHC&2{DBT}UhpK0}H(Hs(*-3neq2CaqYLp%b^~q|Kf)D$s&xLm> zHa{{=H4}6&v>u{@6deSS>FOto4uuX`%20F&L`_k*Ejk=J%~81jVQ^!C;ucMZAC{|$ zf{uWULe*T*hhavMdRkaKn>b%I7V>PIF`dIdcVKX_DNT=r{0cQ#&ve6>+YX ztI%m7zET_X7`XA6`W4kd=+V$*tBs;zw{ia+o zo|wwT`?KgI&P+3**=hB?!(bkw_A(EKu3%!5OHYI!K2@k2k51MT;2C91v+zEDPF%~$ z=bjMv2f`Pkvth{)ggbPN&0bos7>V9*a>l=>4fSMfjL(+2LBmboyt z$T%cKjncWWc9XHiF!&DQjNv=br3Sm~W_msxTVZ$%o}uSK{37FhVUXLzY9zNkA?|;O zy7_t`wDuX-Ot@WZgrhzimK<&_BFoV{C$MIvUThIM+1faK`?Tf04_c$nZQpHtXz*;E z2azurpKw^T-#E(eX~iKU-k|xA0>)sAE`{Qg#sx)}z@#^gKZjzq4gbujHt2GA_Ddtj zC7T;vcz0Z8TP`XJ^-8dQHvWa1TBr*k{9nd5f-lf3px5`tSKQy;HW632Y(<+6hnSyI zx*GmL&7NFrCA#qGHl_h#(rm=e5EXVWG4GJQxO$(c&DLw-TqiTz6xHkX8sL^mjk^tk z%V&NqgYP#8q9RalfPQXsE3RasUJu=Sn198eQF(XRm5V2fh5c(wG3o^_OguGKGDoyoLI{<=@nm;Oo?IS9d?L(Kx z8NOk5FxZF9N-jLr3Kz^{#AQK!KcKw}hBW=6OR@rr9mvPMz}@K3X- zn`*a)pP2O-9%-803es+yrC>;yXko{zF7C{Yt*w}mlDRs+69?-J)1{9SZ8#YJtf-5ye+ ztzc7Z3b)%qRTnEo_}WUt#H{9gM>;jUbSxHjU8`yhxX4}=Q)jnA78+xFX-{R|2t_K zvDS$|nugx7RFtLLy`cY5>nww}>#ck#s)^kLcKp#QQTN{Clhz0)?G0nzw!$nL4GTZE zcHj&UR`Zy@XyLQn8ua z39vrgQHs|q&W=BP+0h`d7(XE$e;4-}FxiA)K2 zmu4@qnwS?|Dj6I~a*Q=ZRZBY=zK(K)DQs^Oh!rP`NP;KC9VsdY+Wq16bjLs}qD_m5Muu~wSljE(sZ75cd{lxhp*^eW33U60C6)t8ux;n+C?)Ctv8|LVKe{se* v;yPuF!K8gjq4=lRX|Q9QBZdDj?Qu!R delta 6043 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 Z3T}Sp_GUhi&vr&%9cU$CX^uNm{SR{Dai0JH diff --git a/lib/views/pages/home/home_page.dart b/lib/views/pages/home/home_page.dart index b7eafbf..5e5fb39 100644 --- a/lib/views/pages/home/home_page.dart +++ b/lib/views/pages/home/home_page.dart @@ -31,9 +31,7 @@ class _HomePageState extends State with AutomaticKeepAliveClientMixin @override Widget build(BuildContext context) { - print('-------HomePage-------build-------'); var color = BlocProvider.of(context).state.homeColor; - var showBg = BlocProvider.of(context).state.showBackGround; return Scaffold( appBar: TolyAppBar( selectIndex: Cons.tabColors.indexOf(color.value), @@ -42,7 +40,12 @@ class _HomePageState extends State with AutomaticKeepAliveClientMixin ), body: Stack( children: [ - if (showBg) Background(), + BlocBuilder(builder: (_, state) { + if (state.showBackGround) { + return Background(); + } + return Container(); + }), BlocBuilder(builder: _buildContent) ], ), @@ -69,11 +72,16 @@ class _HomePageState extends State with AutomaticKeepAliveClientMixin Widget _buildHomeItem( WidgetModel model, ) => - FeedbackWidget( - duration: const Duration(milliseconds: 200), - onPressed: () => _toDetailPage(model), - child: HomeItemSupport.get(model, - BlocProvider.of(context).state.itemStyleIndex)); + BlocBuilder( + condition: (p, c) => (p.itemStyleIndex != c.itemStyleIndex), + builder: (_, state) { + return + FeedbackWidget( + duration: const Duration(milliseconds: 200), + onPressed: () => _toDetailPage(model), + child: HomeItemSupport.get(model, state.itemStyleIndex)); + }, + ); _updateAppBarHeight() { if (_ctrl.offset < _limitY * 4) { diff --git a/lib/views/widgets/StatelessWidget/Builder/node1_base.dart b/lib/views/widgets/StatelessWidget/Builder/node1_base.dart new file mode 100644 index 0000000..11fe021 --- /dev/null +++ b/lib/views/widgets/StatelessWidget/Builder/node1_base.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; + +/// create by 张风捷特烈 on 2020/5/3 +/// contact me by email 1981462002@qq.com +/// 说明: + +// { +// "widgetId": 202, +// "name": 'Builder的使用', +// "priority": 1, +// "subtitle": "【builder】 : 组件构造器 【WidgetBuilder】\n" +// "同一个类中使用`XXX.of(context)`获取某类状态对象方法会存在`上下文滞后`的错误,使用Builder解决。", +// } + +class BuilderDemo extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Container( + height: 200, + child: Scaffold( + appBar: AppBar( + title: Text('Builder'), + ), + floatingActionButton: Builder( + builder: (ctx) => FloatingActionButton( + onPressed: () { + Scaffold.of(ctx) + .showSnackBar(SnackBar(content: Text('hello builder'))); + }, + child: Icon(Icons.add), + ), + ), + ), + ); + } + + +} diff --git a/lib/views/widgets/exp/stateless_unit.dart b/lib/views/widgets/exp/stateless_unit.dart index 063b40a..668d722 100644 --- a/lib/views/widgets/exp/stateless_unit.dart +++ b/lib/views/widgets/exp/stateless_unit.dart @@ -57,6 +57,7 @@ export '../StatelessWidget/Visibility/node2_replacement.dart'; export '../StatelessWidget/ChoiceChip/node1_base.dart'; export '../StatelessWidget/FilterChip/node1_base.dart'; +export '../StatelessWidget/Builder/node1_base.dart'; export '../StatelessWidget/ListTile/node1_base.dart'; diff --git a/lib/views/widgets/widgets_map.dart b/lib/views/widgets/widgets_map.dart index bec3e1e..0f496ca 100644 --- a/lib/views/widgets/widgets_map.dart +++ b/lib/views/widgets/widgets_map.dart @@ -739,6 +739,10 @@ class WidgetsMap { BuilderListView(), SeparatedListView(), ]; + case "Builder": + return [ + BuilderDemo(), + ]; case "GridView": return [ CustomGridView(), diff --git a/pubspec.lock b/pubspec.lock index afad29f..ad96f4d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,21 +7,21 @@ packages: name: archive url: "https://pub.flutter-io.cn" source: hosted - version: "2.0.11" + version: "2.0.13" args: dependency: transitive description: name: args url: "https://pub.flutter-io.cn" source: hosted - version: "1.5.2" + version: "1.6.0" async: dependency: transitive description: name: async url: "https://pub.flutter-io.cn" source: hosted - version: "2.4.0" + version: "2.4.1" bloc: dependency: transitive description: @@ -35,21 +35,21 @@ packages: name: boolean_selector url: "https://pub.flutter-io.cn" source: hosted - version: "1.0.5" + version: "2.0.0" charcode: dependency: transitive description: name: charcode url: "https://pub.flutter-io.cn" source: hosted - version: "1.1.2" + version: "1.1.3" collection: dependency: transitive description: name: collection url: "https://pub.flutter-io.cn" source: hosted - version: "1.14.11" + version: "1.14.12" convert: dependency: transitive description: @@ -63,7 +63,7 @@ packages: name: crypto url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.3" + version: "2.1.4" cupertino_icons: dependency: "direct main" description: @@ -113,7 +113,7 @@ packages: name: image url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.4" + version: "2.1.12" intl: dependency: "direct main" description: @@ -149,13 +149,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.6.4" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.8.0+1" petitparser: dependency: transitive description: @@ -183,7 +176,7 @@ packages: name: quiver url: "https://pub.flutter-io.cn" source: hosted - version: "2.0.5" + version: "2.1.3" rxdart: dependency: transitive description: @@ -237,7 +230,7 @@ packages: name: source_span url: "https://pub.flutter-io.cn" source: hosted - version: "1.5.5" + version: "1.7.0" sqflite: dependency: "direct main" description: @@ -293,7 +286,7 @@ packages: name: test_api url: "https://pub.flutter-io.cn" source: hosted - version: "0.2.11" + version: "0.2.15" toggle_rotate: dependency: "direct main" description: @@ -349,7 +342,7 @@ packages: name: xml url: "https://pub.flutter-io.cn" source: hosted - version: "3.5.0" + version: "3.6.1" sdks: dart: ">=2.7.0 <3.0.0" flutter: ">=1.12.13+hotfix.4 <2.0.0"