簡體   English   中英

單擊 TextField 后小部件重建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM