gpt4 book ai didi

flutter - Flutter文本字段onChanged-检测最后键入的文本是否是标记句柄 '@mention'

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

我正在寻找一个文本字段,该字段在onChanged上检测到用户是否键入了@ tagHandle和尾随文本(类似于twitter中的提及taghandle),这将依次触发oj​​it_code。

作为一个代码示例,以下代码仅在每次键入_callToAction()符号时触发:

TextField(
onChanged: (value) {
if (value.endsWith("@")) {
_callToAction();
}
}
)

但是,这不是理想的结果,因为我需要检测 @符号( @)后的尾随文本,当用户在表单中键入内容以及他们退格并遇到先前键入的 @mention标记句柄时,该文本都应起作用。

最佳答案

这是一个解决方案,它不是经过优化的解决方案,但确实有效。

保留变量以检查是否检测到@,其他两个变量保留@handle的索引。

bool detected = false;
int startIndexOfTag = 0;
int endIndexOfTag = 0;

然后在 onChangedTextField
onChanged: (value) {
if (value.endsWith('@')) {
detected = true;
startIndexOfTag = value.length - 1;
}

if (detected == true) {
print(value.substring(startIndexOfTag));
}

if ((detected == true && value.endsWith(' ')) || startIndexOfTag == 1) {
detected = false;
endIndexOfTag = value.length;
}

if (value.length < endIndexOfTag) {
detected = true;
endIndexOfTag = value.length;
startIndexOfTag = value.indexOf('@');
}
},

这是同样的 DartPad

关于flutter - Flutter文本字段onChanged-检测最后键入的文本是否是标记句柄 '@mention',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62079253/

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