Flutter 键盘的背景和SingleChielScrollView问题
每次打开键盘时,图像都会根据键盘上方的屏幕大小进行缩放,而不再显示在设备的整个屏幕上。我的代码如下,如何解决?因为如果我不放SingleChieldScrollView,它会显示黄色的像素警告横幅Flutter 键盘的背景和SingleChielScrollView问题,flutter,flutter-layout,flutter-animation,flutter-test,flutter-sliver,Flutter,Flutter Layout,Flutter Animation,Flutter Test,Flutter Sliver,每次打开键盘时,图像都会根据键盘上方的屏幕大小进行缩放,而不再显示在设备的整个屏幕上。我的代码如下,如何解决?因为如果我不放SingleChieldScrollView,它会显示黄色的像素警告横幅 import 'package:flutter/material.dart'; class LoginPage extends StatefulWidget { @override _LoginPageState createState() => _LoginPageState();
import 'package:flutter/material.dart';
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("imgs/bgLogin.jpg"), fit: BoxFit.cover)),
child: LayoutBuilder(
builder: (BuildContext context, BoxConstraints viewportConstraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: viewportConstraints.maxHeight,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Container(
child: Column(
children: <Widget>[
Text("Bem Vindo ao,", style: TextStyle(fontSize: 32)),
Text("MedPAD", style: TextStyle(fontSize: 52))
],
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 50.0, bottom: 5.0),
child: TextField(
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: "E-Mail", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 5.0, bottom: 15.0),
child: TextField(
keyboardType: TextInputType.text,
decoration: InputDecoration(
labelText: "Senha", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 5.0, bottom: 15.0),
child: TextField(
keyboardType: TextInputType.text,
decoration: InputDecoration(
labelText: "Senha", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(left: 75.0, right: 75.0),
height: 50.0,
child: RaisedButton(
color: Colors.red,
onPressed: () {},
child: Text(
"Entrar",
style: TextStyle(color: Colors.white),
),
),
)
],
),
),
);
},
),
),
);
}
}
每次打开键盘时,图像都会根据键盘上方的屏幕大小进行缩放,而不再显示在设备的整个屏幕上。我的代码如下,如何解决?因为如果我不放SingleChieldScrollView,它会显示黄色的像素警告横幅
import 'package:flutter/material.dart';
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("imgs/bgLogin.jpg"), fit: BoxFit.cover)),
child: LayoutBuilder(
builder: (BuildContext context, BoxConstraints viewportConstraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: viewportConstraints.maxHeight,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Container(
child: Column(
children: <Widget>[
Text("Bem Vindo ao,", style: TextStyle(fontSize: 32)),
Text("MedPAD", style: TextStyle(fontSize: 52))
],
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 50.0, bottom: 5.0),
child: TextField(
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: "E-Mail", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 5.0, bottom: 15.0),
child: TextField(
keyboardType: TextInputType.text,
decoration: InputDecoration(
labelText: "Senha", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 5.0, bottom: 15.0),
child: TextField(
keyboardType: TextInputType.text,
decoration: InputDecoration(
labelText: "Senha", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(left: 75.0, right: 75.0),
height: 50.0,
child: RaisedButton(
color: Colors.red,
onPressed: () {},
child: Text(
"Entrar",
style: TextStyle(color: Colors.white),
),
),
)
],
),
),
);
},
),
),
);
}
}
每次打开键盘时,图像都会根据键盘上方的屏幕大小进行缩放,而不再显示在设备的整个屏幕上。我的代码如下,如何解决?因为如果我不放SingleChieldScrollView,它会显示黄色的像素警告横幅
import 'package:flutter/material.dart';
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("imgs/bgLogin.jpg"), fit: BoxFit.cover)),
child: LayoutBuilder(
builder: (BuildContext context, BoxConstraints viewportConstraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: viewportConstraints.maxHeight,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Container(
child: Column(
children: <Widget>[
Text("Bem Vindo ao,", style: TextStyle(fontSize: 32)),
Text("MedPAD", style: TextStyle(fontSize: 52))
],
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 50.0, bottom: 5.0),
child: TextField(
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: "E-Mail", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 5.0, bottom: 15.0),
child: TextField(
keyboardType: TextInputType.text,
decoration: InputDecoration(
labelText: "Senha", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(
left: 15.0, right: 15.0, top: 5.0, bottom: 15.0),
child: TextField(
keyboardType: TextInputType.text,
decoration: InputDecoration(
labelText: "Senha", border: OutlineInputBorder()),
),
),
Container(
padding: EdgeInsets.only(left: 75.0, right: 75.0),
height: 50.0,
child: RaisedButton(
color: Colors.red,
onPressed: () {},
child: Text(
"Entrar",
style: TextStyle(color: Colors.white),
),
),
)
],
),
),
);
},
),
),
);
}
}
导入“包装:颤振/材料.省道”;
类LoginPage扩展StatefulWidget{
@凌驾
_LoginPagentate createState()=>_LoginPagentate();
}
类_loginpagentate扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
主体:容器(
装饰:盒子装饰(
图像:装饰图像(
图片:AssetImage(“imgs/bgLogin.jpg”),fit:BoxFit.cover),
子:布局生成器(
生成器:(BuildContext上下文,BoxConstraints视口Constraints){
返回SingleChildScrollView(
子:约束框(
约束:BoxConstraints(
minHeight:viewportConstraints.maxHeight,
),
子:列(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
容器(
子:列(
儿童:[
文本(“Bem Vindo ao”,样式:TextStyle(fontSize:32)),
文本(“MedPAD”,样式:TextStyle(字体大小:52))
],
),
),
容器(
填充:仅限边缘设置(
左:15.0,右:15.0,顶部:50.0,底部:5.0),
孩子:TextField(
键盘类型:TextInputType.emailAddress,
装饰:输入装饰(
labelText:“电子邮件”,边框:OutlineInputBorder()),
),
),
容器(
填充:仅限边缘设置(
左:15.0,右:15.0,顶部:5.0,底部:15.0),
孩子:TextField(
键盘类型:TextInputType.text,
装饰:输入装饰(
labelText:“Senha”,边框:OutlineInputBorder()),
),
),
容器(
填充:仅限边缘设置(
左:15.0,右:15.0,顶部:5.0,底部:15.0),
孩子:TextField(
键盘类型:TextInputType.text,
装饰:输入装饰(
labelText:“Senha”,边框:OutlineInputBorder()),
),
),
容器(
填充:仅限边缘设置(左:75.0,右:75.0),
身高:50.0,
孩子:升起按钮(
颜色:颜色,红色,
按下:(){},
子:文本(
“诱捕者”,
样式:TextStyle(颜色:Colors.white),
),
),
)
],
),
),
);
},
),
),
);
}
}
在代码中,您需要在Scaffold
代码:
在代码中,您需要在
Scaffold
代码: