Flutter IOS 鍵盤焦點 關閉打開鍵盤 Android 的TextField 獲取焦點打開的鍵盤中有關閉鍵盤的箭頭 可以進行關閉鍵盤 IOS 則就不行,它的鍵盤沒有關閉鍵盤的按鈕 就很噁心!! IOS 的輸入框在你輸入完數據之後, 你就沒辦法關閉鍵盤。 雖然你可以滑動界面顯示被隱藏的按鈕,也 ...
Flutter IOS 鍵盤焦點 關閉打開鍵盤
Android 的TextField 獲取焦點打開的鍵盤中有關閉鍵盤的箭頭 可以進行關閉鍵盤
IOS 則就不行,它的鍵盤沒有關閉鍵盤的按鈕 就很噁心!!
IOS 的輸入框在你輸入完數據之後, 你就沒辦法關閉鍵盤。 雖然你可以滑動界面顯示被隱藏的按鈕,也可以 進入新的界面。但是
在新的界面 調用Navigator.of(context).pop();
返回輸入框潔面後,你會發現,雖然鍵盤已經彈出 但是你沒辦法進行任何編輯操作。非常噁心!!!
解決的方法也挺簡單的,在這個TextField 組件上綁定 focusNode,通過focusNode控制輸入框的焦點事件。
class TestDemo extends StatelessWidget {
final FocusNode focusNode = FocusNode();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: GestureDetector(
onTap: () {
focusNode.unfocus();
},
child: Container(
color: Colors.transparent,
alignment: Alignment.center,
child: TextField(
focusNode: focusNode,
),
),
),
);
}
}
Tips:給TextField的 autofocus設置為false,然後把獲取焦點的事件交給用戶自己。點擊輸入框獲取焦點。點擊鍵盤之外的地方就調用 focusNode.unfocus(); 丟失焦點 關閉鍵盤。
在進行界面跳轉之前 調用 focusNode.unfocus(); 先把輸入框的 焦點丟失。這樣返回的時候 重新獲取輸入框的焦點就能繼續進行編輯了,不會出現返回之後,無法編輯輸入框中的內容。也無法關閉鍵盤的尷尬情景。