包含很多设置属性,长宽、背景颜色、显示位置、装饰、与内部内容的间隔,旋转等等。
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Colors.blue,
border: Border.all(
color: Colors.blue,
width: 5.0,
)
),
包含最大行数、显示位置、风格等
child: Text(
'this is a bar',
maxLines: 2,
style: TextStyle(
fontSize: 30.0,
color: Colors.yellow,
),
),
可以conatainer
中的Decoration
中设置,作为背景图片
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage('https://avatars0.githubusercontent.com/u/12151492'),
fit: BoxFit.cover,
),
),
也可以在container
中添加child
图片组件
child: Image.network(
'https://avatars0.githubusercontent.com/u/12151492',
height: 100,
width: 100,
fit: BoxFit.cover,
),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('images/a.jpg'),
fit: BoxFit.cover,
),
),
或者
child: Image.asset(
'images/a.jpg',
height: 100,
width: 200,
fit: BoxFit.cover,
),
使用ClioOval
类,其承载在一个Container
中
child: ClipOval(
child: Image.network(
'https://tse1-mm.cn.bing.net/th/id/OIP.vykkHMFa-oiek6zESN7JRAAAAA',
height: 400,
width: 400,
),
),
另一种是用Decoration
组件,承载在container
中,通过改变其四个角的弧形半径来实现
例如width
和height
都是200,则4个角大小应为其一半,即100
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(100),
border: Border.all(width: 5,color: Colors.blue),
image: DecorationImage(
image: NetworkImage('https://tse1-mm.cn.bing.net/th/id/OIP.vykkHMFa-oiek6zESN7JRAAAAA'),
fit: BoxFit.cover,
),
),
两者的区别
当在Decoration
中设置边框宽度为15时,由于是向内画边框,当在Decoration
中加入图片,图片作为Container
的修饰,铺满了Container
,所以边框会覆盖图片,如左图所示
使用ClipOval
,则与边框不会产生影响,如右图所示