class GrideMenu extends StatelessWidget {
GrideMenu({
Key key,
@required this.items,
@required this.onTap,
@required this.crossAxisCount
}):super(key:key);
final List items; //children的數量
final Function onTap; //child的點選事件
final int crossAxisCount; //每行的child個數
Widget build(context) {
//對children的數量取餘
//如果不等於0就說明存在多出來的children
//那麼行數就必須加1
final int more = items.length % crossAxisCount;
final int minCount = items.length ~/ crossAxisCount;
final int maxCount = more == 0 ? minCount : minCount + 1;
//獲取寬度
final screenWidth = MediaQuery.of(context).size.width;
//求取單個child的寬度
final itemWidth = screenWidth /crossAxisCount;
return Container(
width: context.width,
padding: EdgeInsets.all(8),
height: maxCount * (itemWidth - 10.0),
child: GridView.builder(
//不允許GridView內的children滾動
physics: NeverScrollableScrollPhysics(),
itemCount: items.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
//橫軸元素個數
crossAxisCount: crossAxisCount,
//縱軸間距
mainAxisSpacing: 5.0,
//橫軸間距
crossAxisSpacing: 5.0,
//子元件寬高長度比例
childAspectRatio: 1),
itemBuilder: (ctx, index) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
GestureDetector(
onTap: onTap,
child: Container(
color:Color(0xff0099ff)
),
),
],
);
}),
);
}
}
複製程式碼
Flutter 使用GridView寫一個根據child數量自動增加的GridList
相關文章
- 根據商品數量自動計算價格
- dev 根據datatable動態生成gridviewdevView
- 一個根據資料庫自動生成model類的擴充套件資料庫套件
- 一個根據程式碼自動生成UML的外掛,助你看原始碼事半功倍原始碼
- 訊飛有一個可以根據描述文字自動生成PPT的AI介面,有趣AI
- 【Flutter】如何寫一個Flutter自動打包成iOS程式碼模組的指令碼FlutteriOS指令碼
- react根據json格式資料動態增加domReactJSON
- 根據DELTA自動生成SQL語句SQL
- 根據viewport的size自動調整fontsize大小View
- 用友CDM系統“貨位間商品移庫單(一步)”表體增加“貨位可用數量”欄位,根據表頭的選擇的貨位自動帶出數值...
- excel按照姓名自動匹配資料函式 怎麼根據姓名自動填寫資料Excel函式
- 手把手教你根據PromiseA+手寫一個Promise類Promise
- flutter根據給定寬度自適應縮放字型大小Flutter
- 根據一個筆試題引出的思考筆試
- java使用jaxb解析XML(含根據xml自動生成實體類)JavaXML
- Android實現根據使用者輸入自動搜尋Android
- PHP根據資料表自動生成CURD操作PHP
- mybatis根據表逆向自動化生成程式碼MyBatis
- iPhone或將根據地點自動解鎖iPhone
- 根據 Promises/A+ 手寫 PromsiePromise
- 如何在Excel中根據數量生成抽獎名單Excel
- BIRT 中如何根據引數動態拼接 SQLSQL
- webstorm根據.eslintrc檔案自動修復WebORMEsLint
- 根據表結構,自動生成匯入指令碼指令碼
- 根據JSON自動構建的vue篩選框元件JSONVue元件
- SQL Server中根據某個欄位,ID欄位自動增長的實現SQLServer
- Flutter的staggered GridView詳細使用FlutterView
- SpringBoot使用JPA根據實體類自動生成相應表-mysqlSpring BootMySql
- 根據IP頭格式 寫sniff (轉)
- css 中 nth-child、first-child、last-child 的使用(選中第一個,第幾個,第幾個到第幾個,最後一個等)CSSAST
- css浮動元素寬度根據內容自適應CSS
- 父DIV的高度不能根據子DIV自動變化的解決
- Angular 如何根據一個 class 的定義和資料,動態建立一個該類的例項Angular
- 寫了個根據表名初始化所有模型的擴充套件模型套件
- 根據Interceptor 分析 OkHttp(一)HTTP
- 根據 Promises/A+規範 手寫 PromsiePromise
- 寫一個自動回覆的聊天機器人機器人
- 根據MediatR的Contract Messages自動生成Minimal WebApi介面WebAPI