flutter Scaffold添加ScaffoldStateKey 導致TextField 鍵盤彈起后馬上收回的問題


在用到 GlobalKey<ScaffoldState> 

使用場景

final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();

return Scaffold(
  key: _scaffoldKey

);

_scaffoldKey.currentState.showBottomSheet((BuildContext context) {});

使用_scaffoldKey的目的是 獲取到ScaffoldState 對象,調用showBottomSheet,但是如果Scaffold中使用到了TextFiled widget會出現點擊輸入框鍵盤彈起后立刻收回的情況,如果不使用key: _scaffoldKey,就不會出現這種情況。

解決方法:

不使用GlobalKey<ScaffoldState>,直接根據Scaffold.of(content) 獲取ScaffoldState 調用showBottomSheet

return Scaffold(
  

);

Scaffold.of(content).showBottomSheet((BuildContext context) {});

顯示 snackbar 或者 bottom sheet 的時候,需要使用當前的 BuildContext 參數調用 Scaffold.of 函數來獲取 ScaffoldState 對象,然后使用 ScaffoldState.showSnackBar 和 ScaffoldState.showBottomSheet 函數來顯示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM