[英]How to stop keyboard from getting dismissed?
我在 flutter 中使用textformfield
。每當用戶鍵入內容時,我都會給他建議。 當用戶點擊建議時,鍵盤會自動消失。 我想阻止鍵盤被解雇。 怎么做? 我希望用戶不斷添加建議。 提前致謝。
來自FocusNode
文檔:
FocusNodes 是 ChangeNotifiers,因此可以注冊一個偵聽器以在焦點更改時接收通知。
final _focusNode = FocusNode();
因此,當您將該addListener
分配給TextFormField
時,您可以向它添加FocusNode
以跟蹤它發生的變化:
TextFormField(
focusNode: _focusNode,
// ...
),
您可以添加偵聽器,然后檢查它是否具有焦點,這意味着您正在檢查TextFormField
字段是否獲得焦點,這也意味着如果顯示鍵盤:
_focusNode.addListener(() {
if(!_focusNode.hasFocus) {
_focusNode.requestFocus();
}
});
這樣,它將保持TextFormField
的焦點,當你完成它時,你可以調用removeListener()
。
你可能有這個
FocusScope.of(context).unfocus();
或者最終的 FocusNode textFieldFocusNode = FocusNode();
TextFormField(
focusNode: textFieldFocusNode,
onTap: () async {
textFieldFocusNode.requestFocus();
},
)
將 FocusNode 賦予 Textformfield 並將該特定節點集中在點擊建議上,如下所示:
//Assign this inputNode to TextFormField
FocusNode inputNode = FocusNode();
//Somewhere on TextFormField
TextFormField(
focusNode:inputNode
)
// to open keyboard call this function;
void openKeyboard(){
FocusScope.of(context).requestFocus(inputNode)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.