Container样式
颜色
return Container{
// 红色
color: Colors.red,
// 或者自定义RGB色彩
// color: Color.fromARGB(255, 123, 123, 123),
};
注意不能这样使用:
return Container{
color: Colors.red,
decoration: BoxDecoration{
// 其它代码
}
};
如果需要decoration
,这样使用:
return Container{
decoration: BoxDecoration{
color: Colors.red,
// 其它样式
}
};
渐变色
retrun Container(
decoration: BoxDecoration{
gradient: LinearGradient(
// 开始的位置
begin: Alignment.topLeft,
// 结束为止
end: Alignment.bottomRight,
// 关键点
stops: [0.0, 1.0],
// 颜色
colors: [Colors.red, Color.fromARGB(255, 255, 154, 147)]
)
// 其它代码
}
)
注意,颜色的数量和关键点的数量要相同,即stops.length == colors.length
阴影
return Container(
decoration: BoxDecoration{
boxShadow: [
BoxShadow(
// 颜色
color: Colors.grey.withOpacity(0.1),
// 阴影半径
spreadRadius: 1,
// 模糊半径
blurRadius: 5,
),
]
}
);
圆角
return Container(
decoration: BoxDecoration{
// 圆角10
borderRadius: BorderRadius.circular(10),
}
);
边框
return Container(
decoration: BoxDecoration{
// 全部的边框红色,宽度为1
border: Border.all(
color: Colors.red,
width: 1.0,
),
}
);
也可以这样使用:
Container(
border: Border(
// 顶部边框
top: BorderSide(
color: Colors.red,
width: 1.0,
),
// 底部边框
bottom: BorderSide(
color: Colors.blue,
width: 1.0,
),
),
);
包含一个图片的Container
return Container(
decoration: BoxDecoration(
image: DecorationImage(
image: const AssetImage("assets/image.jpg")
)
)
);
需要过渡动画的Container
可以使用AnimatedContainer
代替Container
实现有过渡动画的Container
例如颜色的过渡变化
// 将Color作为属性传入AnimatedContainer
Color containerColor=Colors.red;
return AnimatedContainer(
// 注意,必要的属性Duration,标识变换过渡时间
duration: const Duration(milliseconds: 200)
width: 100,
height: 100,
color: containerColor,
);
这样当修改containerColor
这个变量的时候,Container
就可以实现颜色过渡效果
点击水波纹效果
// 注意,外层不要使用纯色的内容
return Ink(
decoration: BoxDecoration(
color: /** 背景颜色(如果需要) */,
borderRadius: /** 圆角(如果需要) */,
),
child: InkWell(
onTap: (){
// 点击操作
},
child: Container(
// 注意,Container的样式在Ink的decoration中
height: /** 高度(如果需要) */,
width: /** 宽度(如果需要) */,
child: // Container内容
)
)
);