颤振文本字段Android隐藏/恢复持久值

颤振文本字段Android隐藏/恢复持久值,android,flutter,flutter-layout,Android,Flutter,Flutter Layout,我在Scaffold中有一个简单的测试应用程序-TextField。在Android上,输入值后,按下Home按钮,然后返回/恢复应用程序,该值将重置为初始值/状态-而不是按下Home按钮之前的输入值/状态(除非键盘被明确关闭) 当在iOS上运行同一个应用程序时,它的工作原理与预期一样——该值不会被重置(并且不需要先关闭键盘)。我已经尝试过带/不带状态,显式地声明一个带值的控制器,等等-没有骰子 示例代码: import 'package:flutter/material.dart'; voi

我在
Scaffold
中有一个简单的测试应用程序-
TextField
。在Android上,输入值后,按下Home按钮,然后返回/恢复应用程序,该值将重置为初始值/状态-而不是按下Home按钮之前的输入值/状态(除非键盘被明确关闭)

当在iOS上运行同一个应用程序时,它的工作原理与预期一样——该值不会被重置(并且不需要先关闭键盘)。我已经尝试过带/不带状态,显式地声明一个带值的控制器,等等-没有骰子

示例代码:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'TextField Test App',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  String textValue;

  @override
  void initState() {
    super.initState();
    textValue = "initial value";
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("TextField Text"),
      ),

      body: TextField(
        controller: TextEditingController(
          text: textValue
        ),
      )
    );
  }
}
导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“TextField测试应用程序”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(),
);
}
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key}):超级(Key:Key);
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
字符串文本值;
@凌驾
void initState(){
super.initState();
textValue=“初始值”;
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“文本字段文本”),
),
正文:TextField(
控制器:TextEditingController(
text:textValue
),
)
);
}
}