鍓嶈█鏃ュ父寮€鍙戝伐浣滀腑锛屼粎浣跨敤ListView銆丩istView.builder绛夋粦鍔ㄧ粍浠跺嵆鍙弧瓒冲ぇ閮ㄥ垎涓氬姟闇€姹傘€傚綋娣诲姞澶嶆潅鐨勬粦鍔ㄩ〉闈㈡椂锛孲livers绯诲垪涓嚑涓父鐢ㄧ殑缁勪欢涔熻兘杞绘澗瀹炵幇銆傝繖涔熷鑷翠簡涓€浜涘皬浼欎即瀵逛簬瑁傜墖鐏电郴鍒楁病鏈変竴涓瘮杈冨畬鏁寸殑浜嗚В銆傞偅涔堝湪閲嶆柊璁よ瘑Flutter鐨勪笓鏍忛噷锛岄璁′細鏈?绡嘢livers鐩稿叧鐨勬枃绔狅紝浠庣粍浠剁殑浣跨敤鍒拌儗鍚庣殑娓叉煋鍘熺悊锛岃鎴戜滑涓€璧锋帰绱livers鐨勯瓍鍔涘惂锛佷粈涔堟槸绐楀彛锛熼摱鏉℃槸浠€涔堬紵鐩镐俊鐐瑰紑杩欑瘒鏂囩珷鐨勫皬浼欎即锛屼竴瀹氫細瀵筁istView绛夋粴鍔ㄧ粍浠舵湁鎵€浜嗚В銆傛粴鍔ㄧ粍浠朵細鎻愪緵涓€涓潡鐢ㄤ簬婊氬姩鏄剧ず鍐呭锛屼絾鏄綋鍐呭寰堝鐨勬椂鍊欙紝鎴戜滑鍙兘鐪嬪埌涓€閮ㄥ垎鍙粴鍔ㄧ殑鍐呭銆?杩欏氨鏄鍙o紙ViewPort锛夛紝涔熷氨鏄垪琛ㄥ彲瑙佸尯鍩熺殑澶у皬銆備緥濡傦紝涓€涓狶istView鐨勬樉绀哄尯鍩熼珮搴︽槸500鍍忕礌锛屽畠鐨勫垪琛ㄩ」鐨勬€婚珮搴﹀彲鑳借繙杩滆秴杩?00鍍忕礌锛屼絾瀹冪殑ViewPort浠嶇劧鏄?00鍍忕礌銆傞偅涔堥摱鏉℃槸浠€涔堬紵鎴戜滑鍙互浣跨敤ListView.builder()灏唅temCount璁剧疆涓簄ull鏉ユ瀯寤烘棤闄愬垪琛ㄥ唴瀹广€傚彧鏈夊綋鎴戜滑婊氬姩鐨勬椂鍊欙紝鎴戜滑鎵嶄細鍔ㄦ€佸垱寤虹獥鍙d腑闇€瑕佸憟鐜扮殑鍐呭銆傝繖鏄摱鏉°€傚鏋滀竴涓粴鍔ㄧ粍浠舵敮鎸乻liver妯″瀷锛岄偅涔堣繖涓粍浠朵細鎶婂瓙缁勪欢鍒嗘垚寰堝涓猻liver锛屽彧鏈夊綋sliver鍑虹幇鍦ㄧ獥鍙d腑鏃舵墠浼氭瀯寤恒€侺istView銆丟ridView绛塁ustomScrollView缁勪欢鍦ㄥ簳灞傚疄鐜颁腑閮芥湁瀵瑰簲鐨凷liver锛屽SliverList銆丼liverGrid銆係liver鐗堟湰鐨勫彲婊氬姩缁勪欢涓庨潪Sliver鐗堟湰鐨勫彲婊氬姩缁勪欢鏈€澶х殑鍖哄埆鍦ㄤ簬Sliver鐗堟湰鐨勭粍浠朵笉鍖呭惈鍙粴鍔ㄦā鍨嬶紙Scrollable锛夛紝缁勪欢鏈韩涓嶈兘婊氬姩銆傚洜姝わ紝濡傛灉瑕佷娇鐢⊿liver绯诲垪鐨勭粍浠讹紝闇€瑕佷负鍏舵坊鍔犳粴鍔ㄦā鍨嬨€侳lutter鎻愪緵浜咰ustomScrollView浣滀负Sliver绯诲垪缁勪欢杩愯鐨勫鍣ㄣ€侰ustomScrollView鐨勪富瑕佸姛鑳芥槸鎻愪緵Viewport鍜屼竴涓櫘閫氱殑Scrollable銆傚涓猄liver缁勪欢鍏变韩CustomScrollView鐨凷crollable锛屽疄鐜板崟涓€鐨勬粴鍔ㄥ満鏅€侰ustomScrollView鏈夊緢澶氬睘鎬э紝鍏朵腑鏈€甯哥敤鐨勬槸slivers锛岀敤浜庝紶鍏liver缁勪欢鍒楄〃銆傚氨鍍忚繖鏍凤細Scaffold(body:CustomScrollView(slivers:[SliverList(/**/),SliverGrid(/**/),],,);鍊熷姪CustomScrollView缁勪欢锛屽彲浠ュ疄鐜板鏉傜殑婊氬姩鏁堟灉锛岀湅璧锋潵骞舵病鏈夐偅涔堥毦銆傚鏋淪liverList闇€瑕佸湪涓€涓晫闈㈠垱寤哄涓垪琛紝鍒氭帴瑙lutter鐨勬湅鍙嬪彲鑳戒細鐢–olumn鍖呰9澶氫釜ListView鏉ュ疄鐜帮紝鍍忚繖鏍凤細浣嗘槸杩欐牱鐨勬晥鏋滆偗瀹氳揪涓嶅埌瑕佹眰銆傚鏋滀綘鎯宠瀹冧滑涓€璧锋粴鍔紝鎴栬€呮坊鍔犱竴浜涘鏉傜殑鍔ㄧ敾鏉ュ疄鐜拌繖鏍风殑鏁堟灉锛氶偅涔堝€熷姪SliverList灏卞彲浠ヨ交鏉惧疄鐜般€係liverList鏄竴绉峉liverWidget銆傚畠鐨勫姛鑳芥槸灏哤idgets鎺掑垪鍦ㄤ竴涓狶ist涓€傝浣跨敤SliverList锛屾偍闇€瑕佸畾涔変竴涓鎵樸€係liverdelegate鐢ㄤ簬鎻忚堪浣跨敤鍝鏂规硶鏉ユ覆鏌撶粍浠躲€傞€氬父鏈変袱绉嶇被鍨嬶細static鍜宐uilder銆傚湪SliverList涓紝鍙互瀹氫箟涓ょ绫诲瀷鐨勫鎵橈細SliverChildListDelegate锛氳幏鍙栭渶瑕佹樉绀虹殑缁勪欢鍒楄〃銆傛鍒楄〃涓畾涔夌殑缁勪欢灏嗙珛鍗冲憟鐜般€備笉浼氭湁浠讳綍寤惰繜鍔犺浇銆係liverChildBuilderDelegate锛氳幏鍙栧皢寤惰繜鍒涘缓鐨勫皬閮ㄤ欢鍒楄〃銆傝繖鎰忓懗鐫€褰撶敤鎴锋粴鍔ㄦ椂锛屽墿浣欑殑缁勪欢灏嗗紑濮嬫覆鏌撱€侺istView鍙互绠€鍗曠悊瑙d负锛欳ustomScrollView+SliverList+SliverChildListDelegate锛涘皢ListView.Builder鐞嗚В涓猴細CustomScrollView+SliverList+SliverChildBuilderDelegate銆備簡瑙d簡SliverList闇€瑕佸畾涔夌殑delegate涔嬪悗锛屼娇鐢ㄥ畠灏卞儚浣跨敤ListView涓€鏍风畝鍗曪細,),SliverList(delegate:SliverChildBuilderDelegate((BuildContextctx,intindex){returnContainer(height:50,color:Colors.primaries[index%Colors.primaries.length],);},childCount:5),),],),SliverGridSliverGrid鍜孏ridView涓€鏍凤紝灏嗙粍浠舵帓鍒楁垚涓€鎺掍袱涓垨澶氫釜銆傞櫎浜嗗儚SliverList瀹氫箟涓€涓櫘閫氱殑delegate涔嬪锛岃繕闇€瑕佷紶鍏ridDelegate鏉ユ弿杩版瘡琛屽浣曟樉绀虹粍浠躲€傚儚杩欐牱锛氭瘡琛屾渶澶?涓紝姣忎釜缁勪欢鐨勫搴︽槸鍏堕珮搴︾殑1.5鍊嶃€係liverGrid(gridDelegate:constSliverGridDelegateWithFixedCrossAxisCount(crossAxisCount:4,crossAxisSpacing:5,mainAxisSpacing:3,childAspectRatio:1.5),delegate:SliverChildBuilderDelegate((BuildContextcontext,intindex){杩斿洖瀹瑰櫒(color:Colors.primaries[index%Colors.primaries.length],},childCount:20),)SliverGrid涓彲浠ュ畾涔変袱绉峠ridDelegate锛歋liverGridDelegateWithFixedCrossAxisCount锛氭寚瀹氫竴琛屾湁澶氬皯鍒楋紝鐢ㄥ畠鏉ヨ嚜鍔ㄦ墿灞曞埌灞忓箷鐨勬渶澶у搴︺€?!---->crossAxisCount灞炴€ф槸鍒楁暟childAspectRatio灞炴€ф槸绾垫í姣擷XXSpacing灞炴€ф槸鎸囨瘡涓€椤逛箣闂寸殑杈硅窛SliverGridDelegateWithMaxCrossAxisExtent锛氬彲浠ユ寚瀹氬垪鐨勫搴?!---->maxCrossAxisExtent鏄垪涓殑鏈€澶у搴︺€侴ridView.builder鍙互鐞嗚В涓猴細CustomScrollView+SliverGrid+SliverChildBuilderDelegate+gridDelegate閬囧埌涓€浜涚畝鍗曠殑闇€姹傦紝涔熷彲浠ヤ娇鐢ㄧ缉鍐欑粍浠讹細SliverChildListDelegate+SliverGridDelegateWithMaxCrossAxisExtentSliverGrid.count(crossAxisCount:3,children:[...List.generate(3,(index)=>瀹瑰櫒(棰滆壊:Colors.primaries[index%Colors.primaries.length],),)],),SliverGrid.extent(maxCrossAxisExtent:100,children:[...List.generate(9,(index)=>Container(棰滆壊:Colors.primaries[index%Colors.primaries.length],),)],)SliverGrid涓嶴liverList涓€璧蜂娇鐢ㄥ彲浠ヨ揪鍒拌繖鏍风殑鏁堟灉锛歋liverAppBarAppBar鏄ぇ澶氭暟搴旂敤绋嬪簭涓潪甯搁噸瑕佺殑涓€涓粍浠讹紝瀹冧綅浜嶢pp鍦ㄩ《閮紝涓昏鎺у埗涓€浜涘彲鎿嶄綔鐨勬寜閽€傚湪Flutter涓紝Scaffold涓嬬粡甯镐娇鐢ˋppBar缁勪欢銆傞偅涔堜粈涔堟槸SliverAppBar鍛紵SliverAppBarWidget鍏煎Flutter涓殑CustomScrollView銆傚畠鍜孉ppBar缁勪欢涓€鏍凤紝涔熷氨鏄瀹冩嫢鏈堿ppBar鐨勬墍鏈夊睘鎬э紝姣斿锛歵itle,actions,leading锛屼絾鏄畠杩樻湁涓€浜涢澶栫殑鍙傛暟锛屾瘮濡俻inned,floating,snap,expandedHeight鐢ㄦ潵鑷畾涔夎涓虹殑搴旂敤鏍忋€係liverAppBar閫氬父鐢ㄤ綔CustomScrollViewslivers涓殑绗竴涓粍浠躲€係caffold(body:CustomScrollView(slivers:[SliverAppBar(title:Text("HelloSliverAppBar&Taxze"),actions:
