[英]Widget rebuilds after TextField click
我有一個問題,當我單擊 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'),
);
}
}
誰能告訴我為什么會這樣?
我認為使用MediaQuery會導致這種行為,因為每次尺寸更改時 MediaQuery 都會重建小部件。 鍵盤一打開,尺寸就會發生變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.