diff --git a/flutter_samples/flutter_layout_application/lib/layout/gridViewLayout.dart b/flutter_samples/flutter_layout_application/lib/layout/gridViewLayout.dart new file mode 100644 index 0000000000000000000000000000000000000000..45b220eb6808950cae5fb7260bf136500fd7ac60 --- /dev/null +++ b/flutter_samples/flutter_layout_application/lib/layout/gridViewLayout.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import '../model/card_item.dart'; + +class GridViewLayout extends StatelessWidget { + final CardItem cardItem; + + const GridViewLayout({super.key, required this.cardItem}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Text( + cardItem.title, + style: Theme.of(context).textTheme.headlineSmall, + ), + const SizedBox(height: 16), + Expanded( + child: GridView.count( + crossAxisCount: 4, + crossAxisSpacing: 10, + mainAxisSpacing: 10, + children: List.generate(16, (index) { + return Container( + decoration: BoxDecoration( + color: Colors.primaries[index % Colors.primaries.length], + borderRadius: BorderRadius.circular(8), + ), + child: Center( + child: Text( + 'Item ${index + 1}', + style: const TextStyle(color: Colors.white, fontSize: 18), + ), + ), + ); + }), + ), + ), + ], + ), + ); + } +} diff --git a/flutter_samples/flutter_layout_application/lib/model/card_items_config.dart b/flutter_samples/flutter_layout_application/lib/model/card_items_config.dart index e329d8eed4334743121a5bb229d3e02c8b7e7532..ba2699cd99e1ce3ba224184ba5cbf6c586ff64a3 100644 --- a/flutter_samples/flutter_layout_application/lib/model/card_items_config.dart +++ b/flutter_samples/flutter_layout_application/lib/model/card_items_config.dart @@ -24,6 +24,7 @@ Map> cardItemsConfig = { content: 'listview builder 布局', key: 'listview_builder_layout', ), + CardItem(title: '网格布局', content: 'GridView网格布局示例', key: 'gridview_layout'), ], '设置': [ CardItem(title: '设置卡片1', content: '这是设置页面的第一张卡片的内容。', key: 'setting-card1'), diff --git a/flutter_samples/flutter_layout_application/lib/preview_page.dart b/flutter_samples/flutter_layout_application/lib/preview_page.dart index d4b6fd957915bda28c60b898d6c28f053c91aa3b..ee17d551fec670a7b94cacef146c68825043cfba 100644 --- a/flutter_samples/flutter_layout_application/lib/preview_page.dart +++ b/flutter_samples/flutter_layout_application/lib/preview_page.dart @@ -1,12 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:flutter_layout_application/layout/project/columnLayoutProject.dart'; -import 'package:flutter_layout_application/layout/project/resume.dart'; -import 'package:flutter_layout_application/layout/singleColumnLayout.dart'; -import 'package:flutter_layout_application/layout/singleLayout.dart'; -import 'package:flutter_layout_application/layout/singleListViewBuilderLayout.dart'; -import 'package:flutter_layout_application/layout/singleListViewLayout.dart'; -import 'package:flutter_layout_application/layout/singleListViewRowLayout.dart'; -import 'package:flutter_layout_application/layout/singleRowLayout.dart'; +import './layout/gridViewLayout.dart'; +import './layout/project/columnLayoutProject.dart'; +import './layout/project/resume.dart'; +import './layout/singleColumnLayout.dart'; +import './layout/singleLayout.dart'; +import './layout/singleListViewBuilderLayout.dart'; +import './layout/singleListViewLayout.dart'; +import './layout/singleListViewRowLayout.dart'; +import './layout/singleRowLayout.dart'; import 'model/card_item.dart'; // 引入 CardItem 类 class PreviewPage extends StatelessWidget { @@ -42,6 +43,8 @@ class PreviewPage extends StatelessWidget { return SingleListViewBuilderLayout(cardItem: cardItem); } else if (cardItem.key == 'resume_project') { return ResumeScreen(); + } else if (cardItem.key == 'gridview_layout') { + return GridViewLayout(cardItem: cardItem); } else { return Text(cardItem.content); // 根据需求调整逻辑 }