我在學習編碼的同時構建了一些 flutter 應用程式,并在過去解決了 SingleChildScrollView 的“溢位”問題。這個問題是不同的,我無法在這里或其他地方找到解決方法。
我相信這個問題是由于“螢屏”中有一個“表格”。
螢屏 'golf_cart_reg_new.dart' 有 appBar 和提交或取消按鈕。
'golf_cart_reg_new_form.dart' 具有 TextFormFields 和驗證。溢位錯誤似乎是形式而不是螢屏。我已經在我能想到的所有地方都嘗試過 SingleChildScrollView 而沒有任何改變。
我也確定我的代碼很臃腫,但我也在學習。
我將發布下面兩個螢屏的代碼。任何幫助,將不勝感激。

---- 這是下面的螢屏代碼 ----
import 'package:WelakaOne/logic/golf_cart_new_form.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:WelakaOne/appbar/app_bar_title.dart';
import 'package:WelakaOne/drawer/drawer.dart';
import 'package:WelakaOne/drawer/end_drawer.dart';
import 'package:WelakaOne/logic/custom_colors.dart';
import 'golf_cart_reg_home.dart';
class GolfCartNewScreen extends StatefulWidget {
@override
_GolfCartNewScreenState createState() => _GolfCartNewScreenState();
}
class _GolfCartNewScreenState extends State<GolfCartNewScreen> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
systemOverlayStyle: SystemUiOverlayStyle.dark,
backgroundColor: CustomColors.WelakaOneBlack,
title: AppBarTitle(),
leading: Builder(
builder: (context) {
return IconButton(
onPressed: () {
Scaffold.of(context).openDrawer();
},
icon: Icon(Icons.menu),
);
},
),
actions: <Widget>[
Builder(
builder: (context) {
return IconButton(
onPressed: () {
Scaffold.of(context).openEndDrawer();
},
icon: Icon(Icons.person),
);
},
),
],
),
drawer: new MyDrawer(),
endDrawer: new MyEndDrawer(),
body: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [
CustomColors.WelakaOneBlack,
CustomColors.WelakaOneBlueDark,
],
begin: FractionalOffset(0.0, 0.0),
end: FractionalOffset(1.6, 1.0),
stops: [0.3, 1.0],
tileMode: TileMode.clamp,
),
),
child: Container(
child: Center(
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.fromLTRB(0, 15, 0, 0),
child: Text(
'GOLF CART',
style: TextStyle(
color: CustomColors.WelakaOneYellow,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
),
Container(
padding: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Text(
'NEW REGISTRATION',
style: TextStyle(
color: CustomColors.WelakaOneYellow,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
),
SizedBox(height: 30),
Container(
padding: EdgeInsets.fromLTRB(30, 0, 30, 0),
child: GolfCartNewForm(),
),
SizedBox(height: 30),
Container(
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new GolfCartHomeScreen(),
),
);
},
child: const Text(
'CANCEL',
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: CustomColors.WelakaOneBlueDark,
),
),
style: ElevatedButton.styleFrom(
primary: CustomColors.WelakaOneWhite,
fixedSize: const Size(220, 40),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(50),
),
),
),
],
),
),
),
],
),
),
),
),
);
}
}
---- 這是下面的表格----
import 'package:WelakaOne/logic/golf_cart_new_form.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:WelakaOne/appbar/app_bar_title.dart';
import 'package:WelakaOne/drawer/drawer.dart';
import 'package:WelakaOne/drawer/end_drawer.dart';
import 'package:WelakaOne/logic/custom_colors.dart';
import 'golf_cart_reg_home.dart';
class GolfCartNewScreen extends StatefulWidget {
@override
_GolfCartNewScreenState createState() => _GolfCartNewScreenState();
}
class _GolfCartNewScreenState extends State<GolfCartNewScreen> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
systemOverlayStyle: SystemUiOverlayStyle.dark,
backgroundColor: CustomColors.WelakaOneBlack,
title: AppBarTitle(),
leading: Builder(
builder: (context) {
return IconButton(
onPressed: () {
Scaffold.of(context).openDrawer();
},
icon: Icon(Icons.menu),
);
},
),
actions: <Widget>[
Builder(
builder: (context) {
return IconButton(
onPressed: () {
Scaffold.of(context).openEndDrawer();
},
icon: Icon(Icons.person),
);
},
),
],
),
drawer: new MyDrawer(),
endDrawer: new MyEndDrawer(),
body: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [
CustomColors.WelakaOneBlack,
CustomColors.WelakaOneBlueDark,
],
begin: FractionalOffset(0.0, 0.0),
end: FractionalOffset(1.6, 1.0),
stops: [0.3, 1.0],
tileMode: TileMode.clamp,
),
),
child: Container(
child: Center(
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.fromLTRB(0, 15, 0, 0),
child: Text(
'GOLF CART',
style: TextStyle(
color: CustomColors.WelakaOneYellow,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
),
Container(
padding: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Text(
'NEW REGISTRATION',
style: TextStyle(
color: CustomColors.WelakaOneYellow,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
),
SizedBox(height: 30),
Container(
padding: EdgeInsets.fromLTRB(30, 0, 30, 0),
child: GolfCartNewForm(),
),
SizedBox(height: 30),
Container(
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new GolfCartHomeScreen(),
),
);
},
child: const Text(
'CANCEL',
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: CustomColors.WelakaOneBlueDark,
),
),
style: ElevatedButton.styleFrom(
primary: CustomColors.WelakaOneWhite,
fixedSize: const Size(220, 40),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(50),
),
),
),
],
),
),
),
],
),
),
),
),
);
}
}
uj5u.com熱心網友回復:
看起來您插入了兩次相同的代碼。請確保更新您共享的代碼form。
我有類似的問題,這是解決問題的順序:
Flexible --> SingleChildScrollView --> Form --> Column
Flexible(
child: SingleChildScrollView(
child: Form(
key: _formKey,
child: Column(
children:[Container(
alignment: Alignment.centerLeft,
padding: EdgeInsets.only(left:10, top: 20, bottom: 20),
child: Text("xxx")
如果這沒有幫助,請告訴我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/327195.html
上一篇:PHP單頁表單處理
