我有一个将TextFormField作为孩子的Card小部件。我希望在用户每次到达新行时增加卡片的高度。卡片被包装在Container中,我有一个height变量来确定高度。
如何在TextFormField中检测新行?此外,每当文本换行到下一行时。
发布于 2021-05-27 19:10:37
我认为您需要创建一个函数来检查特定的TextFormField行。
我想这对你很有用"https://stackoverflow.com/questions/45900387/multi-line-textfield-in-flutter“
发布于 2021-05-27 19:24:55
要在不按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;为此,您必须对所有字符使用宽度相等的字体,如等宽字体。您还需要根据fontSize确定字符的宽度。它应该是50-60%的字体大小,但85%的工作为我。
https://stackoverflow.com/questions/67720108
复制相似问题