Android 检测TextFormField中的新行-颤振

Android 检测TextFormField中的新行-颤振,android,flutter,newline,Android,Flutter,Newline,我小时候有一张卡片小部件,上面有TextFormField。我想在每次用户到达新行时增加卡的高度。卡被包装在一个容器中,我有一个高度变量来确定高度 如何在TextFormField中检测新行?无论何时文本换行到下一行。我认为您需要创建一个函数来检查TextFormField特定的行 我认为这对你很有用。”https://stackoverflow.com/questions/45900387/multi-line-textfield-in-flutter“要在不按enter键的情况下更新高度:

我小时候有一张
卡片
小部件,上面有
TextFormField
。我想在每次用户到达新行时增加卡的高度。卡被包装在一个
容器中
,我有一个高度变量来确定高度


如何在
TextFormField
中检测新行?无论何时文本换行到下一行。

我认为您需要创建一个函数来检查TextFormField特定的行


我认为这对你很有用。”https://stackoverflow.com/questions/45900387/multi-line-textfield-in-flutter“

要在不按enter键的情况下更新高度:

onChanged: (String e) {
    int sizeIncreaseConstant = 30; //the fontSize 20 + buffer
    int widthOfCharacter = 17; // 85% of fontsize
    int newNumLines = ((e.length * widthOfCharacter)/widthOfContainer).truncate();
    if( newNumLines != numLines) {
        setState(() {
            if(newNumLines > numLines) 
                heightOfContainer = heightOfContainer + sizeIncreaseConstant;
            else
                heightOfContainer = heightOfContainer - sizeIncreaseConstant;
            numLines = newNumLines;
        });
    }
},
初始值:

int numLines = 0;
double widthOfContainer = 120;
double heightOfContainer = 50;
//fontSize = 20;

为此,您必须使用宽度与所有字符相同的字体,如Monospace。您还需要根据字体大小确定字符的宽度。它应该是字体大小的50-60%,但85%适合我。

看看WidgetHank you!它工作得很好!我还想检测文本何时在不按enter键的情况下换行到下一行。