如何解决Flutter 当焦点为真时光标和键盘不显示
我使用 Linkable 突出显示用户在文本字段中键入的内容中的网络链接、电话号码和电子邮件地址。第一个问题是可链接不接受文本字段,它只接受文本。因此,我的解决方案是仅在用户键入时显示 TextField,并在用户未键入时将 Textfield 替换为用户键入的文本。第二个问题是,无论何时文本字段可见,一开始它都不会显示键盘或光标,即使我可以验证其焦点是否为真。每次弹出文本字段时如何显示光标?我什至将 showcursor 设置为 true ,但它仍然不起作用。在另一篇文章中,我读到使用延迟的计时器可以解决问题,所以我这样做了,但仍然不起作用。
FocusNode _focusNode = FocusNode();
@override
Widget build(BuildContext context) {
...
return GestureDetector(
onTap: () {
FocusNode currentFocus = FocusScope.of(context);
if (currentFocus.hasFocus) {
currentFocus.unfocus();
}
},child: Column(
children: <Widget>[
Visibility(
visible: _focusNode.hasFocus,child: TextField(
focusNode: _focusNode,showCursor: true,controller: _contentTextController,),InkWell(
child: Linkable(
text: "testing",onTap: () async {
FocusScope.of(context).requestFocus(_focusNode);
// FocusScope.of(context).requestFocus(_focusNode);
// Timer(const Duration(milliseconds: 1000),() {
// FocusScope.of(context).requestFocus(_focusNode);
// _focusNode.requestFocus();
// });
await Future.delayed(
Duration(milliseconds: 10)
);
Timer(const Duration(milliseconds: 10),() {
setState(() {
print(_focusNode.hasPrimaryFocus);
//showtextEditor = !showtextEditor;
});
});
}
),],
这是我的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。