这是一个Android问题。
在我的<TextInput>
内部(ReactNative(在Android中呈现EditText
))当用户键入&#34;#&#34;然后他们使用Androids滑动模式自动完成一个单词,它在&#34;#&#34;之间增加了一个空格。和自动完成的单词。所以我正在做的是onChange
文本,我替换了#34;#&#34;之间的空间。然而,当用户处于快速模式时,它确实搞砸了。空间回来了,快速的自动完成混淆了另一个词。
当用户接受自动完成时,是否有反应原生的方式可以听?我想检查前两个字符是否为#
(标签和空格),如果是,则将其替换为#
(没有空格的#标签)。
我在考虑onCommitCompletion
- https://developer.android.com/reference/android/widget/TextView.html#onCommitCompletion(android.view.inputmethod.CompletionInfo) - 在接受建议的词语后开火 - 这是真的吗?如果这是完美的,我可以提交PR反应本机接受这个Android。
以下是有关正在发生的事情的视频:https://gfycat.com/AdmirableGrizzledIrishsetter
低质量:
答案 0 :(得分:1)
之所以发生这种情况,是因为您正在通过键盘的“滑动”功能键入文本。滑动功能会在字符串前后自动添加额外的空间。无法摆脱它,它是(某些)键盘的集成功能。我们无法控制它。 不用担心,最终用户已经意识到这一点,而他所要做的就是键入整个文本,而不是使用“滑动”功能输入文本。
尝试不确定AutoComplete
内部的TextInput
吧,也许不确定<TextInput autoCorrect={false}/>
。
此外,这不仅是Android手机的问题,尝试在Apple设备上安装GBoard,您将面临同样的问题。
答案 1 :(得分:1)
我在大型键盘上工作了2年,我不知道您所说的“快速模式”是什么意思。但是通用键盘API中没有此类功能。它可能是某些特定键盘的功能,但是无法以编程方式将其关闭。
您所描述的内容最接近自动间隔。这不是Android的概念,而是每个单独的键盘的概念。而且由于Android对此一无所知,因此无法将其关闭(用户可以在许多键盘上,但是仅此而已)。
如果您要进行某些工作以覆盖InputConnection或在Java中设置文本观察器并更改要插入的文本,则可以覆盖它(不将其关闭,而是强制空格消失),但是在React Native级别上都无法做到这一点-您需要编写自定义编辑文本,然后将其链接下来以通过Native组件进行React Native。
答案 2 :(得分:0)
我认为这应该是@returns(String)
transaction LoadAccountTx {
o String accountId
}
/**
* function to load account
* @param {org.scsvault.history.LoadAccountTx} loadAccountTx
* @returns {string} (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string)
* @transaction
*/
async function loadAccount(loadAccount)
{
return "This is a test string";
}
-我不确定虽然我还不能测试。我认为在此回调中,我将获得该职位,并查看是否有前导空格,如果有,则删除该前导空格。