diff --git a/flutter_samples/flutter_layout_application/lib/layout/singleRowLayout.dart b/flutter_samples/flutter_layout_application/lib/layout/singleRowLayout.dart new file mode 100644 index 0000000000000000000000000000000000000000..ebc6e8fa80c1c50c8033053541567330ece809ad --- /dev/null +++ b/flutter_samples/flutter_layout_application/lib/layout/singleRowLayout.dart @@ -0,0 +1,103 @@ +import 'package:flutter/material.dart'; + +import '../main.dart'; + +class SingleRowLayout extends StatefulWidget { + final CardItem cardItem; + + const SingleRowLayout({super.key, required this.cardItem}); + + @override + _SingleRowLayoutState createState() => _SingleRowLayoutState(); +} + +class _SingleRowLayoutState extends State { + MainAxisAlignment _alignment = MainAxisAlignment.start; + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + children: [ + Row( + mainAxisAlignment: _alignment, + children: [borderedImage(), borderedImage(), borderedImage()], + ), + Row( + children: [ + Radio( + value: MainAxisAlignment.start, + groupValue: _alignment, + onChanged: (MainAxisAlignment? value) { + setState(() { + _alignment = value!; + }); + }, + ), + Text('Start'), + Radio( + value: MainAxisAlignment.center, + groupValue: _alignment, + onChanged: (MainAxisAlignment? value) { + setState(() { + _alignment = value!; + }); + }, + ), + Text('Center'), + Radio( + value: MainAxisAlignment.end, + groupValue: _alignment, + onChanged: (MainAxisAlignment? value) { + setState(() { + _alignment = value!; + }); + }, + ), + Text('End'), + Radio( + value: MainAxisAlignment.spaceBetween, + groupValue: _alignment, + onChanged: (MainAxisAlignment? value) { + setState(() { + _alignment = value!; + }); + }, + ), + Text('Space Between'), + Radio( + value: MainAxisAlignment.spaceAround, + groupValue: _alignment, + onChanged: (MainAxisAlignment? value) { + setState(() { + _alignment = value!; + }); + }, + ), + Text('Space Around'), + Radio( + value: MainAxisAlignment.spaceEvenly, + groupValue: _alignment, + onChanged: (MainAxisAlignment? value) { + setState(() { + _alignment = value!; + }); + }, + ), + Text('Space spaceEvenly'), + ], + ), + ], + ), + ); + } + + Widget borderedImage() { + return Image.asset( + 'images/lake.jpg', + width: 200, + height: 160, + fit: BoxFit.cover, + ); + } +} diff --git a/flutter_samples/flutter_layout_application/lib/main.dart b/flutter_samples/flutter_layout_application/lib/main.dart index a21867567c217169846e964bb4a3c62bfc80b958..f493beade24505772ff10d661943e3e1881435c3 100644 --- a/flutter_samples/flutter_layout_application/lib/main.dart +++ b/flutter_samples/flutter_layout_application/lib/main.dart @@ -39,6 +39,7 @@ class _MyHomePageState extends State { String _selectedCategory = '首页'; // 默认选中首页 List _cardItems = [ CardItem(title: 'single', content: '基础 layout', key: 'single'), + CardItem(title: 'single_row_layout', content: '简单横向布局', key: 'row_layout'), ]; void _onCategorySelected(String category) { @@ -49,6 +50,11 @@ class _MyHomePageState extends State { case '首页': _cardItems = [ CardItem(title: 'single', content: '基础 layout', key: 'single'), + CardItem( + title: 'single_row_layout', + content: '简单横向布局', + key: 'row_layout', + ), ]; break; case '设置': diff --git a/flutter_samples/flutter_layout_application/lib/preview_page.dart b/flutter_samples/flutter_layout_application/lib/preview_page.dart index 48901921ee3f15a8d611367e892c059bd45ae14d..78c6503705e07e4ca99476488e3fdb8854271f4f 100644 --- a/flutter_samples/flutter_layout_application/lib/preview_page.dart +++ b/flutter_samples/flutter_layout_application/lib/preview_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_layout_application/layout/project/columnLayoutProject.dart'; import 'package:flutter_layout_application/layout/singleLayout.dart'; +import 'package:flutter_layout_application/layout/singleRowLayout.dart'; import 'main.dart'; // 引入 CardItem 类 class PreviewPage extends StatelessWidget { @@ -24,6 +25,8 @@ class PreviewPage extends StatelessWidget { return SingleLayout(cardItem: cardItem); } else if (cardItem.key == 'column_layout_project') { return ColumnLayoutProject(); + } else if (cardItem.key == 'row_layout') { + return SingleRowLayout(cardItem: cardItem); } else { return Text(cardItem.content); // 根据需求调整逻辑 }