首页 > 解决方案 > SingleChildScrollView ,子列上的空格问题

问题描述

当我尝试打开手机键盘时,我的 ** PIXELS 底部溢出,所以我将我的 Column 包裹在SingleChildScrollView不知何故它被推到顶部并且MainAxisAlignment.spaceEvenly停止工作,所以 我使用SizedBox在它们之间留出了一些空间问题是:这是好方法吗?实现小部件之间的空间,它是否适用于不同的手机尺寸

我的代码: 在此处输入图像描述

第二个问题:当我打开键盘时,如何将所有列推到顶部直到最后一项显示而不滚动,如下图所示

在此处输入图像描述

标签: androidflutterdartwidgetsinglechildscrollview

解决方案


  1. MainAxisAlignment.spaceEvenly再次进行这项工作,您需要将您的内部包裹起来ConstrainedBox,如下所示:
SingleChildScrollView(
        child: ConstrainedBox(
          constraints: BoxConstraints(
            maxHeight: MediaQuery.of(context).size.height,
          ),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: [
              Text('data'),
              Text('HelloWorld'),
            ],
          ),
        ),
      ),
  1. 要滚动到表单的末尾,请使用 aScrollControllerSingleChildScrollView动画到列表的末尾,如下所示:
   controller.animateTo(
      controller.position.maxScrollExtent,
      duration: const Duration(milliseconds: 500),
      curve: Curves.easeOut,
    );
  1. 可以使用SizedBox空格,一个小提示:记得const在它之前设置以使您的应用程序性能更高,因为这样flutter不会在每次重新构建小部件时都重新构建sizedBox Widget

希望你觉得这对你有帮助 =D


推荐阅读