10Flutter页面布局 Padding Row Column Expanded组件详解:
2024-09-29 02:11:05
Padding组件:
main.dart
import 'package:flutter/material.dart';
import 'res/listData.dart';
/*
flutter页面布局Padding Row Column Expanded组件详情:
*/ void main() {
runApp(MyApp());
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Padding Row Column Expanded'),
),
body: HomeContent(),
),
);
}
} class HomeContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.fromLTRB(, , , ),
child: GridView.count(
crossAxisCount: ,
childAspectRatio: 1.7,
children: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(, , , ),
child: Image.network("https://www.itying.com/images/flutter/1.png",
fit: BoxFit.cover),
),
Padding(
padding: EdgeInsets.fromLTRB(, , , ),
child: Image.network("https://www.itying.com/images/flutter/1.png",
fit: BoxFit.cover),
),
Padding(
padding: EdgeInsets.fromLTRB(, , , ),
child: Image.network("https://www.itying.com/images/flutter/1.png",
fit: BoxFit.cover),
),
Padding(
padding: EdgeInsets.fromLTRB(, , , ),
child: Image.network("https://www.itying.com/images/flutter/1.png",
fit: BoxFit.cover),
),
Padding(
padding: EdgeInsets.fromLTRB(, , , ),
child: Image.network("https://www.itying.com/images/flutter/1.png",
fit: BoxFit.cover),
)
],
),
);
}
}
Row水平布局组件:
import 'package:flutter/material.dart';
import 'res/listData.dart';
/*
flutter页面布局Padding Row Column Expanded组件详情:
Row水平布局组件:
mainAxisAlignment 主轴的排序方式
crossAxisAlignment 次轴的排序方式
children 组件子元素:
*/ void main() {
runApp(MyApp());
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Padding Row Column Expanded'),
),
body: HomeContent(),
),
);
}
} class HomeContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
height: 800.0,
width: 400.0,
color: Colors.pink,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
IconContainer(Icons.home, color: Colors.blue),
IconContainer(Icons.search, color: Colors.orange),
IconContainer(Icons.select_all, color: Colors.red)
],
),
);
}
} class IconContainer extends StatelessWidget {
double size = 32.0;
Color color = Colors.red;
IconData icon;
IconContainer(this.icon, {this.color, this.size}) {}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Container(
height: 100.0,
width: 100.0,
color: this.color,
child: Center(
child: Icon(this.icon, size: this.size, color: Colors.white),
),
);
}
}
Column 垂直布局:
import 'package:flutter/material.dart';
import 'res/listData.dart';
/*
flutter页面布局Padding Row Column Expanded组件详情:
Column水平布局组件:
mainAxisAlignment 主轴的排序方式
crossAxisAlignment 次轴的排序方式
children 组件子元素:
*/ void main() {
runApp(MyApp());
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Padding Row Column Expanded'),
),
body: HomeContent(),
),
);
}
} class HomeContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
height: 800.0,
width: 400.0,
color: Colors.pink,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
IconContainer(Icons.home, color: Colors.blue),
IconContainer(Icons.search, color: Colors.orange),
IconContainer(Icons.select_all, color: Colors.red)
],
),
);
}
} class IconContainer extends StatelessWidget {
double size = 32.0;
Color color = Colors.red;
IconData icon;
IconContainer(this.icon, {this.color, this.size}) {}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Container(
height: 100.0,
width: 100.0,
color: this.color,
child: Center(
child: Icon(this.icon, size: this.size, color: Colors.white),
),
);
}
}
Expanded
import 'package:flutter/material.dart';
import 'res/listData.dart';
/*
Flutter Expanded类似Web中的Flex布局:
flex:元素占整个父Row/Column的比例:
child 子元素 */ void main() {
runApp(MyApp());
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Padding Row Column Expanded'),
),
body: HomeContent(),
),
);
}
} class HomeContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Row(
children: <Widget>[
// Expanded(
// flex: 1,
// child: IconContainer(Icons.search,color:Colors.blue),
// ),
// Expanded(
// flex: 2,
// child: IconContainer(Icons.home,color:Colors.orange),
// ),
// Expanded(
// flex: 1,
// child: IconContainer(Icons.select_all,color:Colors.red),
// ) Expanded(
flex: ,
child: IconContainer(Icons.home,color:Colors.orange),
),
IconContainer(Icons.search,color:Colors.blue)
],
);
}
} class IconContainer extends StatelessWidget {
double size = 32.0;
Color color = Colors.red;
IconData icon;
IconContainer(this.icon, {this.color, this.size}) {}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Container(
height: 100.0,
width: 100.0,
color: this.color,
child: Center(
child: Icon(this.icon, size: this.size, color: Colors.white),
),
);
}
}
最新文章
- href,src,url 整理
- centos常用命令
- 简明python教程 --C++程序员的视角(八):标准库
- java CAS
- 给jdk写注释系列之jdk1.6容器(11)-Queue之ArrayDeque源码解析
- 如何修改Linux系统下的PATH(如何添加自己的路径到PATH)
- 老司机带你用vagrant打造一站式python开发测试环境
- 如何简单的实现新手引导之UGUI篇
- selenium 环境搭建
- IPFS: Merkle DAG数据结构
- centos7安装mysql8
- .net如何引用该命名空间
- Centos7 安装hive
- HDU--4705
- 解决Sqlserver 2008 R2在创建登录名出错";此版本的 Microsoft Windows 不支持 MUST_CHANGE 选项。 (Microsoft SQL Server,错误: 15195)";
- vue项目打包部署到nginx 服务器上
- Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境
- drupal7 为视图添加 过滤标准 内容类型
- cygwin 运行java的一些记录
- 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)