按下并弹出第二个屏幕后,TextFormField重置值

时间:2020-06-23 13:29:24

标签: flutter

首先,对不起我的英语不好,我有一个带有一些TextFormFields的屏幕,当我按第二个屏幕并单击“后退”按钮时,第一个屏幕中的TextFormFields很干净。 该如何解决?

3 个答案:

答案 0 :(得分:0)

我不知道您的问题,但请尝试以下简单代码,看看是否有帮助。这里一切都按预期工作!

import 'package:flutter/material.dart';

main() => runApp(MaterialApp(
  home: FirstPage()
));

class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          TextField(),
          FlatButton(
            color: Colors.red,
            child: Text('Click me!'),
            onPressed: () =>
                Navigator.push(context, MaterialPageRoute(builder: (context) => SecondRoute())),
          ),
        ],
      ),
    );
  }
}

class SecondRoute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Text('ok'),
    );
  }
}

答案 1 :(得分:0)

如果您自定义了后退按钮,则返回时不要使用navigator.push,只需使用navigator.pop(context)

答案 2 :(得分:0)

亲爱的

我发现了问题,当在我的textformfield中放置控制器时,他从第二个屏幕返回时仍保持值。