android - 如何计算文本字段中的多少行?

标签 android flutter dart textfield

我需要知道用户在文本字段中输入了多少行。有没有这样做的语法?这是我的代码。出现“只能在初始化程序中访问静态成员”

class MyCustomForm extends StatefulWidget {
  @override
  Page1 createState() => Page1();
}

class Page1 extends State<MyCustomForm> {

  final TextEditingController myController = TextEditingController();
  String change = '';

  final numLines = '\n'.allMatches(change).length + 1; //appears Only static members can be accessed in initializer

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new ListView(
        children: <Widget>[
          new Container(
            padding: new EdgeInsets.all(10.0),
            child: new Column(
              children: <Widget>[
                new TextField(
                  keyboardType: TextInputType.multiline,
                  maxLines: 26,
                  controller: myController,
                  onChanged: (String e){
                    setState(() {
                      change = e;
                    });
                  },
                  decoration: new InputDecoration(
                      border: new OutlineInputBorder(
                          borderRadius: new BorderRadius.circular(20.0))),
                )
              ],
            ),
          ),
        ],
      ),
    );
  }
}


最佳答案

您可以在这里找到答案
flutter-how-to-get-the-number-of-text-lines

下次,请确保在创建重复项之前对以前的问题进行了一些搜索。谢谢

编辑

似乎您是新手。您不能在那里使用该功能

class MyCustomForm extends StatefulWidget {
  @override
  Page1 createState() => Page1();
}

class Page1 extends State<MyCustomForm> {

  final TextEditingController myController = TextEditingController();
  int numLines = 0;

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new ListView(
        children: <Widget>[
          new Container(
            padding: new EdgeInsets.all(10.0),
            child: new Column(
              children: <Widget>[
                new TextField(
                  keyboardType: TextInputType.multiline,
                  maxLines: 26,
                  controller: myController,
                  onChanged: (String e){
                     setState((){
                         numLines = '\n'.allMatches(e).length + 1;
                     })
                  },
                  decoration: new InputDecoration(
                      border: new OutlineInputBorder(
                          borderRadius: new BorderRadius.circular(20.0))),
                )
              ],
            ),
          ),
        ],
      ),
    );
  }
}



关于android - 如何计算文本字段中的多少行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56440411/

相关文章:

flutter - 在 iphone 上安装使用 android studio 开发的 Flutter 应用

dart - 如何模拟 HttpClientResponse 以返回一个字符串

firebase - 如何使用 flutter cloud_firestore 包传递 firestore 身份验证 token

android - 对 api Slim 框架的请求失败

node.js - 使用BLoC模式的Flutter登录系统

dart - 创建无状态小部件时如何运行代码

flutter - 用 Dart ServiceStack 缓存响应?

java - Android Studio 单元测试支持与 robolectric

java - Android - 如何使按钮不可见但仍处于 Activity 状态?

Android连接BLE模块并通过串口发送数据