实现方法为定义一个Container为页面骨架的父组件,再将骨架的默认样式给去掉。
@override
Widget build(BuildContext context) {
return Container(
decoration: const BoxDecoration(
// 渐变色
gradient: LinearGradient(colors: [
Color.fromARGB(255, 251, 240, 226),
Color.fromARGB(255, 232, 233, 243),
Color.fromARGB(255, 252, 232, 226),
Color.fromARGB(255, 248, 225, 248),
Color.fromARGB(255, 220, 230, 254)
], begin: Alignment.topLeft, end: Alignment.bottomRight)),
// 将Scaffold骨架放在定义的Container里
child: Scaffold(
// 将整个Scaffold背景色透明,代替默认白色
backgroundColor: Colors.transparent,
appBar: AppBar(
// 将整个AppBar背景色透明,代替默认ThemeColor(蓝色)
backgroundColor: Colors.transparent,
// AppBar的阴影度,无特殊需求就直接为0
elevation: 0,
leading: IconButton(
color: Colors.black,
icon: const Icon(Icons.arrow_back_ios),
onPressed: () => Navigator.pop(context)),
),
// 页面Body
body: Center(),
),
);
}
如果是更改背景图片或是其他也是同理,只需更改最外层的Container的填充样式即可。
该文章展示了如何在Flutter中创建一个自定义背景的页面。通过定义一个Container作为页面骨架的父组件,移除默认样式,并使用LinearGradient设置渐变背景。同时,将Scaffold的背景色设为透明,AppBar同样处理,以实现全透明效果。此外,还提到了通过调整Container的填充样式可以方便地更改背景图片或其他设计元素。
6121





