0

我有一个填写表格的页面 每个输入框之间都有一个灵活的 Expanded 用于间隔。他们的弹性是不同的。我希望当键盘弹出时,这些Expanded先被压缩,如果高度还是不够,那么列就可以滚动了。例如:

没有键盘的时候,Expanded会占据尽可能高的位置

当键盘抬起时,它会尽可能地压缩Expanded

但是当有足够的文本字段时,我无法使列滚动

Scaffold(
    // body: SingleChildScrollView(
    //   child: Container(
    //     constraints: BoxConstraints(
    //       maxHeight: 812.h,
    //       minHeight: 300.h
    //     ),
    //     child: Column(
    //       children: [
    //         Expanded(child: Container(color: Colors.red)),
    //         TextFormField(),
    //         Expanded(child: Container(color: Colors.yellow,)),
    //         TextFormField(),
    //         Expanded(child: Container(color: Colors.green,)),
    //         TextFormField(),
    //         Expanded(child: Container(color: Colors.blue,)),
    //         TextFormField(),
    //         Expanded(child: Container(color: Colors.purple,))
    //       ],
    //     ),
    //   ),
    // ),
    body: Container(
      constraints: BoxConstraints(
          maxHeight: 812.h,
          minHeight: 300.h
      ),
      child: Column(
        children: [
          Expanded(child: Container(color: Colors.red)),
          TextFormField(),
          Expanded(child: Container(color: Colors.yellow,)),
          TextFormField(),
          Expanded(child: Container(color: Colors.green,)),
          TextFormField(),
          Expanded(child: Container(color: Colors.blue,)),
          TextFormField(),
          Expanded(child: Container(color: Colors.purple,)),
          TextFormField(),
          Expanded(child: Container(color: Colors.purple,)),
          TextFormField(),
          Expanded(child: Container(color: Colors.purple,)),
          TextFormField(),
          Expanded(child: Container(color: Colors.purple,)),
          TextFormField(),
          Expanded(child: Container(color: Colors.purple,)),
        ],
      ),
    ),
  )
4

1 回答 1

-1

尝试在 SingleChildScrollView() 中添加您的列尝试下面的代码,我认为不需要使用Expanded直接使用TextFormField

body: SingleChildScrollView(
   child: Column(
    children: [
      Expanded(child: Container(color: Colors.red)),
      TextFormField(),
      Expanded(child: Container(color: Colors.yellow,)),
      TextFormField(),
      Expanded(child: Container(color: Colors.green,)),
      TextFormField(),
      Expanded(child: Container(color: Colors.blue,)),
      TextFormField(),
      Expanded(child: Container(color: Colors.purple,)),
      TextFormField(),
      Expanded(child: Container(color: Colors.purple,)),
      TextFormField(),
      Expanded(child: Container(color: Colors.purple,)),
      TextFormField(),
      Expanded(child: Container(color: Colors.purple,)),
      TextFormField(),
      Expanded(child: Container(color: Colors.purple,)),
    ],
  ),
),
)
于 2021-07-30T07:04:30.170 回答