原因是调用MediaQuery.of(context)后,点击TextField组件时会导致调用build方法。
解决方法:在Scaffold组件的body嵌套Builder组件,然后设置一个BuildContext变量,将Builder组件中的context传递给BuildContext变量,然后用到的MediaQuery.of(context)中的context就是这个Builder中的context。
late BuildContext appContext;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: NavigatorWidget.buildAppBar(context, "选择"),
backgroundColor: const Color(Co.routeBgColor2),
body: Builder(
builder: (BuildContext context) {
appContext = context;
这样即可:MediaQuery.of(appContext)