如何解决尽管不需要 Flutter,但 Scaffold 占据了整个屏幕
import 'package:Flutter/material.dart';
import 'package:spiran_app/constants/constants.dart';
import 'package:spiran_app/widgets/form_textfield_widget.dart';
import 'package:spiran_app/widgets/subscreen_appbar_widget.dart';
import 'dialog_widget.dart';
class SignUpDialogWidget extends StatefulWidget {
@override
_SignUpDialogWidgetState createState() => _SignUpDialogWidgetState();
}
class _SignUpDialogWidgetState extends State<SignUpDialogWidget> {
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
TextEditingController _emailController = TextEditingController();
TextEditingController _passwordController = TextEditingController();
TextEditingController _confirmPasswordController = TextEditingController();
@override
Widget build(BuildContext context) {
final ThemeData themeData = Theme.of(context);
return Container(
margin: Constants.constContainerMargin,decoration: Boxdecoration(
borderRadius:
BorderRadius.circular(Constants.constContainerBorderRadius),BoxShadow: [
BoxShadow(color: Colors.black,blurRadius: 50.0,spreadRadius: 20.0),],),child: ClipRRect(
borderRadius:
BorderRadius.circular(Constants.constContainerBorderRadius),child: Scaffold(
appBar: SubscreenAppBarWidget(
theme: Theme.of(context),title: "Sign Up",leadingWidget: IconButton(
icon: Icon(Icons.close),onpressed: () => Navigator.pop(context),body: Form(
autovalidateMode: AutovalidateMode.onUserInteraction,key: _formKey,child: Padding(
padding: const EdgeInsets.all(8.0),child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
FormTextFieldWidget(
theme: themeData,textEditingController: this._emailController,icon: Icons.alternate_email,textFieldHintText: "Email",validationRegex: RegExp(
r"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,253}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,253}[a-zA-Z0-9])?)*$"),validationErrorMessage:
"Please enter a valid email address",FormTextFieldWidget(
theme: themeData,textEditingController: this._passwordController,icon: Icons.lock,isPassword: true,textFieldHintText: "Password",validationErrorMessage: "Please enter a valid password",textEditingController: this._confirmPasswordController,textFieldHintText: "Confirm Password",validationErrorMessage: "Passwords do not match",Align(
alignment: Alignment.center,child: ElevatedButton(
style: ButtonStyle(
shape: MaterialStateProperty.all(
RoundedRectangleBorder(
borderRadius: BorderRadius.circular(
Constants.constContainerBorderRadius,backgroundColor: MaterialStateProperty.all(
themeData.primaryColor)),child: Text(
"Sign Up",style: TextStyle(
color: themeData.accentColor,onpressed: () {
if (!_formKey.currentState!.validate()) {
showDialog(
context: context,builder: (ctx) => DialogWidget(
titleText: "Input error",contentText:
"One or some of your inputs have an error. Please correct them first",);
return;
}
//Todo sign up
},)
],);
}
}
我得到的结果是这样的:
如您所见,此屏幕的顶部和底部(矩形)有一个额外的空间。导致这种情况的小部件是我拥有的 Scaffold 小部件。如何删除多余的空间,以便我的小部件占用它需要的空间而不是更多?
解决方法
我没有很好地理解这个问题,但我认为您可以使用 Material() 小部件而不是脚手架
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。