Flutter 小部件在文本字段单击后重建

Flutter 小部件在文本字段单击后重建,flutter,flutter-layout,Flutter,Flutter Layout,我遇到了一个问题,当我点击TextField时,整个小部件会重新加载。 我不想发生这种事。 尝试了许多方法,但没有找到解决方案。我正在Android设备上运行该应用程序 class Testextends StatefulWidget { @override _TestState createState() => _TestState(); } class _TestState extends State<Test> { final _search = Text

我遇到了一个问题,当我点击TextField时,整个小部件会重新加载。 我不想发生这种事。 尝试了许多方法,但没有找到解决方案。我正在Android设备上运行该应用程序

class Testextends StatefulWidget {
  @override
  _TestState createState() => _TestState();
}

class _TestState extends State<Test> {
   final _search = TextEditingController();
   static final  GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      appBar: AppBar(
        title: Container(
          height: 45,
          width: MediaQuery.of(context).size.width * 0.9,
          child: Row(
            children: <Widget>[
              Expanded(
                child: TextField(
                  decoration: InputDecoration(
                    focusedBorder: OutlineInputBorder(
                      borderRadius: BorderRadius.all(
                        Radius.circular(30.0),
                      ),
                      borderSide: BorderSide(color: Colors.grey[400]),
                    ),
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.all(
                        Radius.circular(30.0),
                      ),
                    ),
                    labelStyle: TextStyle(color: Colors.grey[400], fontSize: 15),
                    labelText: 'Search...',
                  ),
                  controller: _search,
                  onSubmitted: (_) => search(),
                ),
              ),
        ],
      ),
    ),
  ),
  body: Text('Test Body'),
);
  }
}
class Testextends StatefulWidget{
@凌驾
_TestState createState();
}
类_TestState扩展状态{
最终搜索=文本编辑控制器();
静态最终全局键_scaffoldKey=新全局键();
@凌驾
小部件构建(构建上下文){
返回脚手架(
钥匙:_scaffoldKey,
appBar:appBar(
标题:集装箱(
身高:45,
宽度:MediaQuery.of(context).size.width*0.9,
孩子:排(
儿童:[
扩大(
孩子:TextField(
装饰:输入装饰(
聚焦顺序:大纲输入边框(
borderRadius:borderRadius.all(
圆形半径(30.0),
),
borderSide:borderSide(颜色:Colors.grey[400]),
),
边框:大纲输入边框(
borderRadius:borderRadius.all(
圆形半径(30.0),
),
),
标签样式:文本样式(颜色:Colors.grey[400],字体大小:15),
labelText:“搜索…”,
),
控制器:_搜索,
onSubmitted:()=>search(),
),
),
],
),
),
),
正文:文本(“测试正文”),
);
}
}
有人能告诉我为什么会发生这种情况吗?

我认为在这种行为中使用结果,因为MediaQuery每次维度改变时都会重建小部件。键盘一打开,尺寸就改变