8. Flutter——Padding、Row、Column 组件

1. Padding(间距)

  • 属性:
属性说明
paddingpadding值,EdgeInsetss 设置填充的值
child子组件
  • 代码:
classLayoutDemoextendsStatelessWidget{ 
	@override 
	Widgetbuild(BuildContextcontext){ 
		return Padding( 
			padding:EdgeInsets.fromLTRB(0,0,10,0), 
			child:GridView.count(
				crossAxisCount:2, 
				childAspectRatio:1.5, 
				children:<Widget>[ 
					Padding( 
						padding:EdgeInsets.fromLTRB(10,10,0,0), 
						child:Image.network('url', fit:BoxFit.cover), 
					), 
					Padding( 
						padding:EdgeInsets.fromLTRB(10,10,0,0),
						child:Image.network('url', fit:BoxFit.cover), 
					), 
					Padding( 
						padding:EdgeInsets.fromLTRB(10,10,0,0),
						child:Image.network('url', fit:BoxFit.cover), 
					), 
					Padding( 
						padding:EdgeInsets.fromLTRB(10,10,0,0),
						child:Image.network('url', fit:BoxFit.cover), 
					), 
					Padding( 
						padding:EdgeInsets.fromLTRB(10,10,0,0),
						child:Image.network('url', fit:BoxFit.cover), 
					), 
					Padding( 
						padding:EdgeInsets.fromLTRB(10,10,0,0),
						child:Image.network('url', fit:BoxFit.cover), 
					), 
				], 
			), 
		); 
	} 
}

2. Row(水平布局组件)

  • 属性:
属性说明
mainAxisAlignment主轴的排序方式
crossAxisAlignment次轴的排序方式
children组件子元素
  • 代码:
voidmain()=>runApp(MyApp());

classMyAppextendsStatelessWidget{ 
	@override 
	Widgetbuild(BuildContextcontext){  
		return MaterialApp( 
			home:Scaffold(
				appBar:AppBar(title:Text('FlutterDemo')), 
				body:LayoutDemo(), 
		)); 
	} 
} 

classLayoutDemoextendsStatelessWidget{ 
	@override 
	Widgetbuild(BuildContextcontext){ 
		return Container( 
			height:700, 
			width:500, 
			color:Colors.black26, 
			child:Row( 
				crossAxisAlignment:CrossAxisAlignment.center,
				mainAxisAlignment:MainAxisAlignment.spaceEvenly, 
				children:<Widget>[ 
						IconContainer(Icons.home,color:Colors.red),
						IconContainer(Icons.search,color:Colors.blue),
						IconContainer(Icons.send,color:Colors.orange), 
					], 
				), 
			);
		}
}

classIconContainerextendsStatelessWidget{
	double size; 
	IconData icon; 
	Color color;
	IconContainer(this.icon,{this.size,this.color=Colors.blue}){ 
		this.size=32.0; 
	} 
	@override Widgetbuild(BuildContextcontext){ 
		 return Container( 
		 	width:this.size+60, 
		 	height:this.size+60,
			color:this.color,
			child:Center(child:Icon(this.icon,color:Colors.white,size:this.size)) 
			); 
		}
}

3. Column(垂直布局组件)

  • 属性:
属性说明
mainAxisAlignment主轴的排序方式
crossAxisAlignment次轴的排序方式
children组件子元素
  • 代码:
voidmain()=>runApp(MyApp());

classMyAppextendsStatelessWidget{ 
	@override 
	Widgetbuild(BuildContextcontext){ 
		returnMaterialApp( 
			home:Scaffold( 
				appBar:AppBar(title:Text('FlutterDemo')), 
				body:LayoutDemo(), 
			)); 
		} 
} 

classLayoutDemoextendsStatelessWidget{ 
	@override 
	Widgetbuild(BuildContextcontext){ 
		return Container( 
			height:700, 
			width:500, 
			color:Colors.black26, 
			child:Column( 
				crossAxisAlignment:CrossAxisAlignment.center,
				mainAxisAlignment:MainAxisAlignment.spaceEvenly,  
				children:<Widget>[ 
					IconContainer(Icons.home,color:Colors.red),
					IconContainer(Icons.search,color:Colors.blue),
					IconContainer(Icons.send,color:Colors.orange), 
				],
 		), 
 	);
	}
}

classIconContainerextendsStatelessWidget{
	double size; 
	IconData icon; 
	Color color;
	IconContainer(this.icon,{this.size,this.color=Colors.blue}){
		 this.size=32.0; 
	} 
	@override Widgetbuild(BuildContextcontext){  
		return Container( 
		width:this.size+60, 
		height:this.size+60, 
		color:this.color, 
		child:Center(child:Icon(this.icon,color:Colors.white,size:this.size)) 
		); 
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值