gpt4 book ai didi

android - 如何在 Flutter 中完全取消对 TextField 的关注,而无需稍后返回焦点

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

在我的 flutter 应用程序中,我有一个文本字段,我希望能够通过点击一个不可交互的组件来移除焦点。这不是 Flutter 中文本字段的默认行为,因此我需要找到一种手动执行此操作的方法。按照 https://flutterigniter.com/dismiss-keyboard-form-lose-focus/ 中的步骤,我已经得到了一些工作。以及其他各种页面,其中涉及根目录下的 GestureDetector,其 onTap 看起来像这样:

onTap: () {
FocusScopeNode cf = FocusScope.of(context);
if (!cf.hasPrimaryFocus && cf.focusedChild != null) {
cf.focusedChild.unfocus();
cf.unfocus();
}
}
问题是当我选择文本字段时,单击其他位置(此时焦点似乎消失),打开时间选择器,然后关闭该时间选择器,文本字段再次获得焦点。如果我通过单击键盘上的“完成”按钮来取消关注文本字段,那么打开/关闭时间选择器不会重新关注文本字段,所以我知道这一定是我取消关注的方式有问题。什么是散焦的正确方法,所以焦点不会像那样回来?

最佳答案

我想通了,看来我需要使用 onTap: () => FocusManager.instance.primaryFocus.unfocus()在根的 GestureDetector 中。我很确定这是解决这个特定问题的最佳方法,但我不确定它是否会导致副作用。

关于android - 如何在 Flutter 中完全取消对 TextField 的关注,而无需稍后返回焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64107922/

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