這裏您還需要知道腳手架中的壹個屬性。
官方文件給出的解釋是處理鍵盤遮擋問題。默認值為true,如果不想頂壹下就需要設置為false。
sdk的低版本中使用了ResizeToAvoidBottomPadding,需要設置為false,現在已經廢棄了。但是網上很多文章都沒有改正,仍然使用resizeToAvoidBottomPadding。
有兩種情況。
壹種是使用系統的回車鍵,比如安卓底部導航自帶的回車鍵。
另壹種是使用導航欄自定義回車鍵。
在第壹種情況下,您需要在頁面根布局中使用WillPopScope來攔截onWillPop中的返回處理。
原理是判斷輸入框是否有焦點。
當底部有固定組件時,比如提交按鈕,我們希望在鍵盤彈出時按鈕固定在鍵盤頂部,但中間的滾動視圖可以自由滾動。
堆棧包可以在SingleChildScrollView之外重用,定位浮動按鈕。
更多?註意在滾動組件底部留壹段距離防止遮擋,同時動態添加bottomBar的高度,因為iphoneX上方的手機上會有壹個虛擬按鍵,如果不添加按鍵高度也會被遮擋。
高度獲取方法:mediaquery.of (context)。填充底部。
在showDialog布局中使用Scaffold包,不要忘記將backgroundColor設置為透明。
如果彈出窗口太高,還是需要固定高度,然後使用SingleChildScrollView。在彈出窗口中,也可以在關閉時截取,判斷鍵盤是否彈出。如果它彈出來,妳必須先關閉鍵盤。
將FoucusNode綁定到所有輸入框。
在maxLines=1的情況下,輸入框不支持換行,換行按鈕會變成done。
偵聽onEditingComplete方法
根布局用GestureDetector或InkWell包裝,點擊時鍵盤收起。
最後,記得銷毀它