diff --git a/docs/widget/scrollview/gridview/code.md b/docs/widget/scrollview/gridview/code.md deleted file mode 100644 index e9650e9..0000000 --- a/docs/widget/scrollview/gridview/code.md +++ /dev/null @@ -1,152 +0,0 @@ -### GridView.count -``` -import 'package:flutter/material.dart'; -class Example extends StatelessWidget { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text('Gridview'), - ), - body: GridView.count( - crossAxisCount: 3, - reverse: false, - scrollDirection: Axis.vertical, - controller: ScrollController( - initialScrollOffset: 0.0, - ), - crossAxisSpacing: 10.0, - mainAxisSpacing: 20.0, - childAspectRatio: 2, - physics: BouncingScrollPhysics(), - primary: false, - children: List.generate(25, (index) { - return Container( - decoration: BoxDecoration( - border: Border.all( - color: Colors.redAccent, - ), - ), - child: Center( - child: Text('Item $index', - style: Theme.of(context).textTheme.headline), - ), - ); - }, growable: false), - ), - ); - } -} - -``` - -### GridView.extent -```extent -import 'package:flutter/material.dart'; - -class Index extends StatelessWidget { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text('GridView.extent'), - ), - body: GridView.extent( - scrollDirection: Axis.vertical, - maxCrossAxisExtent: 150, - mainAxisSpacing: 10, - crossAxisSpacing: 10, - childAspectRatio: 1, - padding: EdgeInsets.all(10), - children: List.generate( - 10, - (index) { - return Container( - decoration: BoxDecoration( - border: Border.all( - width: 0.1, - ) - ), - child: Image.network('https://dianhu-1253537286.cos.eu-moscow.myqcloud.com/efoxfile/Moschat/ojbk.png'), - ); - }, - ), - ), - ); - } -} - -``` - -### GridView.custom -```flutter -import 'package:flutter/material.dart'; - -class Index extends StatelessWidget { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text('GridView.costom'), - ), - body: GridView.custom( -// gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( -// crossAxisCount: 10, // 单行最大10个元素布局 -// ), - gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( - maxCrossAxisExtent: 100, // 单列最大宽度100 - ), - childrenDelegate: SliverChildBuilderDelegate( - (context, index) { - return Container( - child: Text('$index'), - ); - }, - // 滚动时回调函数 - semanticIndexCallback: (widget, index) { - print('index $index'); - }, - ), - // 数量滚滚动限制,类似GridView.count -// childrenDelegate: SliverChildListDelegate( -// List.generate(30, (index) { -// return Container( -// child: Text('index $index'), -// ); -// }), -// ), - ), - ); - } -} - -``` - -### GridView.builder -```flutter -import 'package:flutter/material.dart'; - -class Index extends StatelessWidget { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text('GridView.builder'), - ), - body: GridView.builder( - itemCount: 31, - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, // 单行最大数量值 - ), - itemBuilder: (context, index) { - print('index $index'); - return Center( - child: Text('index $index'), - ); - }, - ), - ); - } -} - -``` diff --git a/docs/widget/scrollview/gridview/index.md b/docs/widget/scrollview/gridview/index.md index 6336ee4..b648e16 100644 --- a/docs/widget/scrollview/gridview/index.md +++ b/docs/widget/scrollview/gridview/index.md @@ -1,7 +1,5 @@ ## **GridView** - -> -GridView是自带滚动的二维列表组件。 +> GridView是自带滚动的二维列表组件。 ### 构造方法 ``` @@ -23,6 +21,7 @@ GridView({ int semanticChildCount }) ``` + ### 高级用法 ``` GridView.builder // 动态加载,用于分页较多 @@ -102,52 +101,48 @@ GridView.extent }, ), ), - ); ``` > GridView.custom 动态创建子组件 - SliverGridDelegate gridDelegate : 布局相关 - SliverChildDelegate childrenDelegate:动态创建子组件 - ``` - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount 单行最大数量布局 - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 10, // 单行最大10个元素布局 - ), - gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent 单列最大宽度布局 - gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( - maxCrossAxisExtent: 100, // 单列最大宽度100 - ), - // 创建无限滚动 - childrenDelegate: SliverChildBuilderDelegate( - (context, index) { - return Container( - child: Text('$index'), - ); - }, - // 滚动时回调函数 - semanticIndexCallback: (widget, index) { - print('index $index'); - }, - ), - // 创建有数量的滚动 - childrenDelegate: SliverChildListDelegate( - List.generate(30, (index) { - return Container( - child: Text('index $index'), - ); - }), - ), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount // 单行最大数量布局 + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 10, // 单行最大10个元素布局 + ), + gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent // 单列最大宽度布局 + gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( + maxCrossAxisExtent: 100, // 单列最大宽度100 + ), + childrenDelegate: SliverChildBuilderDelegate( // 创建无限滚动 + (context, index) { + return Container( + child: Text('$index'), + ); + }, + semanticIndexCallback: (widget, index) { // 滚动时回调函数 + print('index $index'); + }, + ), + childrenDelegate: SliverChildListDelegate( // 创建有数量的滚动 + List.generate(30, (index) { + return Container( + child: Text('index $index'), + ); + }), + ), ``` + ``` GridView.custom( // gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( // crossAxisCount: 10, // 单行最大10个元素布局 // ), - gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( - maxCrossAxisExtent: 100, // 单列最大宽度100 - ), + gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( + maxCrossAxisExtent: 100, // 单列最大宽度100 + ), // childrenDelegate: SliverChildBuilderDelegate( // (context, index) { // return Container( @@ -159,15 +154,15 @@ GridView.extent // print('index $index'); // }, // ), - // 数量滚滚动限制,类似GridView.count - childrenDelegate: SliverChildListDelegate( - List.generate(30, (index) { - return Container( - child: Text('index $index'), - ); - }), - ), - ) + // 数量滚滚动限制,类似GridView.count + childrenDelegate: SliverChildListDelegate( + List.generate(30, (index) { + return Container( + child: Text('index $index'), + ); + }), + ), + ) ``` > GridView.builder @@ -175,20 +170,19 @@ GridView.extent - itemCount: 子组件最大数量,默认没有限制。效果跟GridView.custom一致 - gridDelegate:设置布局,单行最大布局数量或单列单项最大长度,参考GridView.custom - itemBuilder:子组件动态加载回调方法,长度受itemCount值影响,itemCount不为0且存在时,数量需小于itemCount值 - ``` GridView.builder( - itemCount: 31, - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, // 单行最大数量值 - ), - itemBuilder: (context, index) { - print('index $index'); - return Center( - child: Text('index $index'), - ); - }, - ), + itemCount: 31, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, // 单行最大数量值 + ), + itemBuilder: (context, index) { + print('index $index'); + return Center( + child: Text('index $index'), + ); + }, + ), ``` ### 其它补充 diff --git a/readme.md b/readme.md index bd8e962..153e295 100644 --- a/readme.md +++ b/readme.md @@ -1,38 +1,88 @@ -# Flutter UI v1.0 +# Flutter UI -# app预览 +> flutter ui 开发者社区 提供各种flutter相关开发教程 + +## app预览 ![Alt 预览](readme/flutter_ui2.gif) ![Alt 预览](readme/flutter_ui3.gif) -# 目录 -``` -——assets -——docs - ——widget - ——regular - ——scrollview - ... -——lib - ——components - ——config - ——controller - ——lang - ——page - ——router - ——store - ——utils - ——widget - ——regular - ——scrollview - ... -——locale + +## 目录 +``` +Flutter UI + ├─assets 静态资源 + ├─docs 教程文件 + ├─widget + ├─regular + ├─scrollview + ... + ├─lib dart执行代码 + ├─components + ├─config + ├─controller + ├─lang + ├─page + │ ├─component + │ └─mine + ├─router + ├─store + │ ├─models + │ └─objects + ├─utils + └─widget + ├─animate + │ ├─animatedbuilder + │ ├─animatedcontainer + ...... + │ └─slidetransition + ├─bulletbox + │ ├─alertdialog + │ ├─bottomsheet + ...... + │ └─snackbar + ├─common + │ ├─assetbundle + │ ├─buttonbar + ...... + │ └─tooltip + ├─form + │ ├─checkbox + │ ├─checkboxlisttile + ...... + │ └─textinput + ├─gestures + │ ├─absorbpointer + │ ├─dismissible + ...... + │ └─longpressdraggable + ├─navigator + │ ├─appbar + │ ├─bottomnavigationbar + ...... + │ └─widgetsapp + ├─regular + │ ├─align + │ ├─aspectratio + ...... + │ └─wrap + ├─scrollview + │ ├─customscrollview + │ ├─gridview + ...... + │ └─singlechildscrollview + └─vision + ├─backdropfilter + ├─clipoval + ...... + └─transform + + ├─locale 语言包 ``` ## 组件进度列表 -### animate -``` +### animate 1. animationController【✔️ v1.0】 2. animatedbuilder【】 3. animatedcontainer【】 @@ -57,17 +107,16 @@ 22. slidetransition【】 ``` + ### bulletbox -``` 1. alertdialog【✔️ v1.0】 2. bottomsheet【✔️ v1.0】 3. expansionPanel【✔️ v1.0】 4. simpledialog【✔️ v1.0】 5. snackbar【✔️ v1.0】 -``` ### common -``` + 1. assetbundle【】 2. buttonbar【】 3. chip【】 @@ -84,37 +133,37 @@ 14. stepper【】 15. text【✔️ v1.0】 16. tooltip【】 -``` + ### form -``` + 1. checkbox【✔️ v1.0】 2. checkboxlisttile【✔️ v1.0】 3. slider【✔️ v1.0】 -3. daypicker【】 -4. form【】 -5. formfield【】 -6. radio【】 -7. rawkeyboard【】 -8. switch【】 -9. textfield【】 -10. textinput【】 -11. 【】 +4. daypicker【】 +5. form【】 +6. formfield【】 +7. radio【】 +8. rawkeyboard【】 +9. switch【】 +10. textfield【】 +11. textinput【】 12. 【】 -``` +13. 【】 + ### gestures -``` + 1. absorbpointer【】 2. dismissible【】 3. dragtarget【】 4. gesturedetector【】 5. ignorepointer【】 6. longpressdraggable【✔️ v1.0】 -``` + ### navigator -``` + 1. appbar【】 2. bottomnavigationbar【】 3. drawer【】 @@ -126,10 +175,10 @@ 9. tabbar【】 10. tabbarview【】 11. widgetsapp【】 -``` + ### regular -``` + 1. align【✔️ v1.0】 2. aspectratio【✔️ v1.0】 3. center【✔️ v1.0】 @@ -146,10 +195,10 @@ 14. stack【✔️ v1.0】 15. table【✔️ v1.0】 16. wrap【✔️ v1.0】 -``` + ### scrollview -``` + 1. customscrollview【✔️ v1.0】 2. gridview【✔️ v1.0】 3. listview【✔️ v1.0】 @@ -162,10 +211,10 @@ 10. 【】 11. 【】 12. 【】 -``` + ### vision -``` + 1. backdropfilter【】 2. clipoval【】 3. clippath【】 @@ -178,4 +227,4 @@ 10. rotatedbox【】 11. theme【】 12. transform【】 -``` +