gpt4 book ai didi

flutter - 如何在 Flutter 中使用 GetX 监听 FocusNode

转载 作者:行者123 更新时间:2023-12-05 04:46:12 26 4
gpt4 key购买 nike

我刚刚发现 GetX我喜欢它!有没有一种使用 GetX 而不是使用 StatefulWidget 来监听 FocusNode 的巧妙方法?

class CustomTextField extends StatefulWidget {
const CustomTextField({Key? key}) : super(key: key);

@override
_CustomTextFieldState createState() => _CustomTextFieldState();
}

class _CustomTextFieldState extends State<CustomTextField> {
final FocusNode _focusNode = FocusNode();

@override
void initState() {
_focusNode.addListener(() => setState(() {}));
super.initState();
}

@override
void dispose() {
_focusNode.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
return CustomContainer(
isFocused: _focusNode.hasFocus,
child: TextField(
focusNode: _focusNode,
),
);
}
}

最佳答案

你可以创建一个StatelessWidgetGetView<MyController>并在 Controller 中添加焦点节点

class MyController extends GetXController {
final FocusNode focusNode = FocusNode();

@override
void onInit() {
focusNode.addListener((){ ...do some stuff }));
super.onInit();
}

@override
onClose() {
focusNode.dispose();
super.onClose();
}
}

然后你可以在你的小部件中使用它

...     
@override
Widget build(BuildContext context) {
return CustomContainer(
isFocused: controller.focusNode.hasFocus,
child: TextField(
focusNode: controller.focusNode.focusNode,
),
);
}

关于flutter - 如何在 Flutter 中使用 GetX 监听 FocusNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68925883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com