ฉันสามารถใช้พื้นหลังด้านล่างScaffold
(และแม้กระทั่งมันAppBar
) ได้โดยใส่ด้านScaffold
ล่างStack
และตั้งค่าContainer
ใน "เลเยอร์" แรกด้วยชุดภาพพื้นหลังและfit: BoxFit.cover
คุณสมบัติ
ทั้งScaffold
และAppBar
ต้องมีการbackgroundColor
ตั้งค่าเป็นColor.transparent
และelevation
ของAppBar
จะต้องเป็น 0 (ศูนย์)
โวล่า! ตอนนี้คุณมีพื้นหลังที่สวยงามด้านล่างทั้ง Scaffold และ AppBar! :)
import 'package:flutter/material.dart';
import 'package:mynamespace/ui/shared/colors.dart';
import 'package:mynamespace/ui/shared/textstyle.dart';
import 'package:mynamespace/ui/shared/ui_helpers.dart';
import 'package:mynamespace/ui/widgets/custom_text_form_field_widget.dart';
class SignUpView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack( // <-- STACK AS THE SCAFFOLD PARENT
children: [
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/bg.png"), // <-- BACKGROUND IMAGE
fit: BoxFit.cover,
),
),
),
Scaffold(
backgroundColor: Colors.transparent, // <-- SCAFFOLD WITH TRANSPARENT BG
appBar: AppBar(
title: Text('NEW USER'),
backgroundColor: Colors.transparent, // <-- APPBAR WITH TRANSPARENT BG
elevation: 0, // <-- ELEVATION ZEROED
),
body: Padding(
padding: EdgeInsets.all(spaceXS),
child: Column(
children: [
CustomTextFormFieldWidget(labelText: 'Email', hintText: 'Type your Email'),
UIHelper.verticalSpaceSM,
SizedBox(
width: double.maxFinite,
child: RaisedButton(
color: regularCyan,
child: Text('Finish Registration', style: TextStyle(color: white)),
onPressed: () => {},
),
),
],
),
),
),
],
);
}
}