[英]Keyboard dismissing when setState is called
當 TextFormField 有焦點或沒有焦點時,我想在 Scaffold 中隱藏/顯示一些小部件。
我已經設法通過將 TextField 包裝在 Focus 小部件中來做到這一點,但是每當我點擊它開始輸入小部件時,我試圖隱藏的小部件就會消失,但鍵盤會失去焦點,直到我第二次點擊 TextField。
任何想法為什么會發生這種情況以及如何防止它?
您可以使用flutter_keyboard_visibility package:
有幾種方法可以用它構建你的 Widget 樹,比如單獨使用 boolean:
// Add new variable for keyboard in your Stateful widget
bool keyboardIsVisible = false;
// Add listener at initState
@override
void initState() {
super.initState();
KeyboardVisibilityNotification().addNewListener(
onChange: (bool visible) {
keyboardIsVisible = visible;
setState(() {});
},
);
}
或者您可以使用他們的構建器小部件:
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
/// In any of your widgets...
@override
Widget build(BuildContext context) {
return KeyboardVisibilityBuilder(
builder: (context, isKeyboardVisible) {
return Text(
'The keyboard is: ${isKeyboardVisible ? 'VISIBLE' : 'NOT VISIBLE'}',
);
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.