[英]Flutter - Keyboard Hides TextField
我有一個帶有以下代碼的頁面,當我單擊文本字段,鍵盤打開並覆蓋文本字段時,重復了一個問題。
我搜索了很多並嘗試了許多解決方案,例如:resizeToAvoidBottomInset: true,在下面的代碼中添加了 singlechildscrollview,我還嘗試添加填充:EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
什么都沒有!
誰能幫我一個想法或正確的小部件樹來解決這個問題?
Scaffold(
resizeToAvoidBottomInset: true,
appBar: AppBar(),
body: Padding(
padding: EdgeInsets.fromLTRB(8.w, 8.h, 8.w, 8.h),
child: SingleChildScrollView(
child: Column(
childern: [
.
.
.
Container(
padding: EdgeInsets.only(
bottom: MediaQuery.of(context)
.viewInsets
.bottom),
child: textField()
)
.
.
.
]
),
),
),
編輯:答案:
給出我的問題解決方案,以防萬一有人遇到它。 幾個月前,我實現了一個名為 screenutilinit 的包,以使應用程序響應不同的大小,我在主頁中使用的命令之一是這一行:
MaterialApp(useInheritedMediaQuery: true, ..) 當我刪除它時一切正常。
我希望它可以幫助別人。
如果您添加了 singleChildScrollView,它將在鍵盤打開時自動向上移動。 它不再需要填充。
Scaffold( resizeToAvoidBottomInset: true, appBar: AppBar(), body: Padding( padding: EdgeInsets.all(20), child: SingleChildScrollView( child: Column(children: [ SizedBox( height: 500, ), Container(child: TextField()) ]), )));
給出我的問題解決方案,以防萬一有人遇到它。 幾個月前,我實現了一個名為 screenutilinit 的包,以使應用程序響應不同的大小,我在主頁中使用的命令之一是這一行:
MaterialApp(useInheritedMediaQuery: true, ..) 當我刪除它時一切正常。
我希望它可以幫助別人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.