dart - Flutter 中的文本字段验证

我正在开发 Flutter TextField 小部件。如果用户没有填写 TextField,我想在 TextField 小部件下方显示一条错误消息。在这种情况下,我只需要使用 TextField 小部件而不是 TextFormField

最佳答案

你想要的一个最小的例子:

class MyHomePage extends StatefulWidget {
  @override
  MyHomePageState createState() {
    return new MyHomePageState();
  }
}

class MyHomePageState extends State<MyHomePage> {
  final _text = TextEditingController();
  bool _validate = false;

  @override
  void dispose() {
    _text.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('TextField Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Error Showed if Field is Empty on Submit button Pressed'),
            TextField(
              controller: _text,
              decoration: InputDecoration(
                labelText: 'Enter the Value',
                errorText: _validate ? 'Value Can\'t Be Empty' : null,
              ),
            ),
            RaisedButton(
              onPressed: () {
                setState(() {
                  _text.text.isEmpty ? _validate = true : _validate = false;
                });
              },
              child: Text('Submit'),
              textColor: Colors.white,
              color: Colors.blueAccent,
            )
          ],
        ),
      ),
    );
  }
}

https://stackoverflow.com/questions/53424916/

相关文章:

flutter - 如何在 flutter 中获得唯一的设备ID?

android - Flutter - 导航到新屏幕,并清除所有以前的屏幕

google-maps - 如果可以使用 flutter 打开谷歌地图应用程序

android - 如何在 Flutter 中获取 AppBar 高度

dart - Flutter - 容器中的顶部对齐文本

regex - 如何在 Dart 中使用正则表达式?

dart - 如何格式化定位文本 block 的背景颜色?

listview - Flutter:SimpleDialog 中的 ListView

flutter - 如何在 flutter 小部件测试中捕获来自 future 的错误?

android - 如何在 Flutter App 中处理 onPause/onResume?