创建新行时如何保持 TextFormField 边框的高度

How to maintain the height of a TextFormField border when new line is created

Container(
          padding: EdgeInsets.only(bottom: 150),
          margin: EdgeInsets.all(10),
          decoration: BoxDecoration(
              border: Border.all(width: 2, color: Colors.black),
              borderRadius: BorderRadius.all(Radius.circular(10))),
          child: TextFormField(
            keyboardType: TextInputType.multiline,
            maxLines: null,
            style: TextStyle(
                fontSize: 20,
                fontWeight: FontWeight.w600,
                fontFamily: 'Montserrat'),
            decoration: InputDecoration(
                border: InputBorder.none,
                hintText: 'Task Description...',
                hintStyle: TextStyle(
                    fontFamily: 'Montserrat',
                    fontWeight: FontWeight.w400,
                    fontStyle: FontStyle.italic,
                    fontSize: 20)),
          ),
        )

因此,我事先使用 Container 和 Text 小部件制作布局,然后将其更改为 TextFormField,但我真的想坚持使用 Container 的边框。但是我有这个问题,当我输入一个新行时,border/box 自动调整它的高度。我不想这样,有什么办法可以解决这个问题吗?

谢谢。

定义 minLinesmaxLines 相同:

完整源代码

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      home: HomePage(),
    ),
  );
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        padding: EdgeInsets.all(10),
        margin: EdgeInsets.all(10),
        decoration: BoxDecoration(
          border: Border.all(width: 2, color: Colors.black),
          borderRadius: BorderRadius.all(Radius.circular(10)),
        ),
        child: TextFormField(
          keyboardType: TextInputType.multiline,
          minLines: 5,
          maxLines: 5,
          style: TextStyle(
            fontSize: 20,
            fontWeight: FontWeight.w600,
            fontFamily: 'Montserrat',
          ),
          decoration: InputDecoration(
            border: InputBorder.none,
            hintText: 'Task Description...',
            hintStyle: TextStyle(
              fontFamily: 'Montserrat',
              fontWeight: FontWeight.w400,
              fontStyle: FontStyle.italic,
              fontSize: 20,
            ),
          ),
        ),
      ),
    );
  }
}

尝试maxLines: null, 所以不需要给固定大小它会根据内容自动调整大小

将您的 maxLines 设置为空

Container(
      padding: EdgeInsets.only(bottom: 150),
      margin: EdgeInsets.all(10),
      decoration: BoxDecoration(
          border: Border.all(width: 2, color: Colors.black),
          borderRadius: BorderRadius.all(Radius.circular(10))),
      child: TextFormField(
        keyboardType: TextInputType.multiline,
        maxLines: null,
        style: TextStyle(
            fontSize: 20,
            fontWeight: FontWeight.w600,
            fontFamily: 'Montserrat'),
        decoration: InputDecoration(
            border: InputBorder.none,
            hintText: 'Task Description...',
            hintStyle: TextStyle(
                fontFamily: 'Montserrat',
                fontWeight: FontWeight.w400,
                fontStyle: FontStyle.italic,
                fontSize: 20)),
      ),
    )