android - 带有背景图像和表单的 Flutter Stack
问题描述
我有一个屏幕,其中背景图像设置为填充整个屏幕,最重要的是,有输入字段。当我单击 TextFormField 时,会显示键盘并将背景图像推到顶部,这是我不希望的行为。
你知道怎么不顶推图像吗?我认为Form(带有SingleChildScrollView)小部件呈现在屏幕顶部(索引>那个背景图像),所以我不明白为什么图像会变形。有任何想法吗?
代码:
class LoginScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
Container(
width: double.infinity,
child: Image.asset("imageAsset",
fit: BoxFit.fitWidth),
),
SingleChildScrollView(
child: Form(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
FormField(), // Example
FormField(), // Example
FormField(), // Example
]),
)
],
)));
}
}
解决方案
使用 TextFormField,我推荐使用 ListView 而不是 singleChildScrollView。
class LoginScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
Container(
width: double.infinity,
child: Image.asset("imageAsset", fit: BoxFit.fill),
),
ListView(
children: <Widget>[
Form(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
TextFormField(), // Example
TextFormField(), // Example
TextFormField(), // Example
]),
),
],
)
],
));
}
}
推荐阅读
- python - 我想取每个月每个唯一值的平均价格
- python - 正确的日志记录模块配置
- sas - SAS RegEX 中的掩码 @ 字符
- javascript - Chrome 不支持在此处插入图片
- batch-file - 单行以及如何将结果也作为单行
- css - ReactJS 正文,html 高度 100%
- r - ggplot标题中的下标和评估变量
- swift - SwiftUI 多窗口关闭会导致崩溃
- entity-framework - Entity Framework Core 迁移在创建时为空
- python - 如果 SFTPToS3Operator 已经拥有 AWS 权限,应该把什么作为 s3_conn_id?