首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测TextFormField中的新行- Flutter

检测TextFormField中的新行- Flutter
EN

Stack Overflow用户
提问于 2021-05-27 18:16:59
回答 2查看 253关注 0票数 0

我有一个将TextFormField作为孩子的Card小部件。我希望在用户每次到达新行时增加卡片的高度。卡片被包装在Container中,我有一个height变量来确定高度。

如何在TextFormField中检测新行?此外,每当文本换行到下一行时。

EN

回答 2

Stack Overflow用户

发布于 2021-05-27 19:10:37

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

我想这对你很有用"https://stackoverflow.com/questions/45900387/multi-line-textfield-in-flutter

票数 0
EN

Stack Overflow用户

发布于 2021-05-27 19:24:55

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

代码语言:javascript
运行
复制
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;
        });
    }
},

初始值:

代码语言:javascript
运行
复制
int numLines = 0;
double widthOfContainer = 120;
double heightOfContainer = 50;
//fontSize = 20;

为此,您必须对所有字符使用宽度相等的字体,如等宽字体。您还需要根据fontSize确定字符的宽度。它应该是50-60%的字体大小,但85%的工作为我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67720108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档