flutter - 在标题和表格之间留出空间的正确方法?
问题描述
我想实现一个看起来像这样的布局。
在我专注于输入之前,它工作正常。
我想知道如何以正确的方式做到这一点......这是我到目前为止已经尝试过的:
- 在内部包装表单
SingleChildScrollView
(Spacer
小部件导致错误)。 - 使用
CustomScrollView
,(Spacer
小部件导致错误)。 - 包装
CustomScrollView
或SingleChildScrollView
内部SizedBox
受设备高度限制(导致某些元素在较小的设备上仅部分可见)。 - 按照这个问题的答案(不起作用)。
有什么线索吗?这是我的代码:
class CreateFieldReportPage extends GetView<CreateFieldReportController> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: GestureDetector(
onTap: controller.focusScope.unfocus,
child: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 30),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
PageHeader(
helper: 'fieldReport.create.helper'.tr,
title: 'fieldReport.create'.tr,
),
Spacer(),
FieldReportForm(),
PageNavigator(
onPressedPrimaryButton: () {
Get.toNamed(Routes.EVENT_CREATE_ADD_USER);
},
),
],
),
),
),
),
);
}
}
解决方案
Spacer()
就像一个Flexible
只占用屏幕上可用空间的小部件,如果其他小部件占用了剩余空间,那么它将无法工作。
对您来说,SizedBox(height: 30)
, 可以工作并添加所需的高度。SingleChildScrollView()
然后将提供额外的空间并执行滚动。
推荐阅读
- amazon-web-services - 如何格式化 CloudFormation 任务定义命令
- wpf - 如何在wpf中切换两个不同的单选按钮
- android - Flutter,Android - 是否可以在启动(启动)屏幕上更改状态栏颜色?
- sql - 为每个用户创建 SQL 表作为安全措施
- html - 如何在控制器上的 html 标记中设置 if else 条件
- python - 具有元数据的列表的最佳数据结构
- firebase - Firebase Google 关联帐户返回空电子邮件
- r - 使用 Cox PH 生存分析预测客户生命周期价值
- google-sheets - 希望从右到左计算零值,直到出现非零值
- flutter - 更新有状态小部件的一部分