Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将光标移动到TextField-Nativescript的末尾_Android_Angular_User Interface_Nativescript_Textfield - Fatal编程技术网

Android 将光标移动到TextField-Nativescript的末尾

Android 将光标移动到TextField-Nativescript的末尾,android,angular,user-interface,nativescript,textfield,Android,Angular,User Interface,Nativescript,Textfield,我希望文本字段在用户单击后自动指向文本的结尾。这在setSelection之前是有效的,但由于某种原因它停止了工作。现在,光标指向用户单击的任何位置 HMTL: 如果我把它包装在一个超时内,它会工作,但在光标移动之前它会闪烁,我对此不太满意。我还发了一封信 提前感谢您的帮助 它似乎按预期工作。记住,在Android上,焦点是光标放在TextField上时的焦点。若你们按下后退按钮隐藏键盘,然后点击文本字段上的任意位置再次显示键盘,那个么不会再次触发焦点事件 当我点击TextField时,它将光标

我希望文本字段在用户单击后自动指向文本的结尾。这在setSelection之前是有效的,但由于某种原因它停止了工作。现在,光标指向用户单击的任何位置

HMTL:

如果我把它包装在一个超时内,它会工作,但在光标移动之前它会闪烁,我对此不太满意。我还发了一封信


提前感谢您的帮助

它似乎按预期工作。记住,在Android上,焦点是光标放在TextField上时的焦点。若你们按下后退按钮隐藏键盘,然后点击文本字段上的任意位置再次显示键盘,那个么不会再次触发焦点事件

当我点击TextField时,它将光标指向TextField的末尾,若我再次点击同一个TextField,它将不会。但是如果我点击第二个文本字段,那么它应该像预期的那样工作,因为焦点现在从第一个文本字段转移到第二个文本字段


如果您仍然存在问题,请共享您的设备操作系统版本,并可能共享显示问题的GIF。

好的,我找到了解决方案。这有点像黑客,但对我来说确实有用。setTimeout的主要区别在于,它在移动光标之前不会“闪烁”

好的,我的解决方案是:我在textfield内部使用一个条件css类,这取决于textfield是否聚焦。这会导致一旦textfield就绪,生命周期钩子再次运行一次(至少我认为是这样)

这是我现在的代码: HTML:

}

TS:


这是我的

我在操场上有设置超时的示例。它确实可以工作,但在移动之前会闪烁。我认为你无法避免超时,这是Android本身的问题。当您聚焦文本字段时,它的布局会得到更新,集合选择应该等待这些更改完成。如果您对盲超时感到不舒服,您可以使用“我不认为布局正在更新”,因为聚焦后不会触发布局更改。虽然我找到了一个解决问题的方法,但还是要感谢你的帮助。这对我来说很有效,但我很好奇是否有更好的方法来解决这个问题?在我的例子中,我已经需要一个条件css,所以我只需要移动它。尽管如此,我想知道一个更一般的答案,这不是一个黑客。
<TextField text="the cursor should point at the end when clicked" (focus)="onFocus($event.object)"> </TextField>
public onFocus(textfield): void {
   textfield.android.setSelection(textfield.text.length)
}
<TextField [class.default-padding]="isFocused" text="the cursor should point at the end when clicked" (focus)="onFocus($event.object)" (blur)="onBlur()"> </TextField>
.default-padding {
/* This is just a dummy value. You can use any other padding or margin or
 anything that will cause the hooks to re-render*/
padding-right: 0;
private isFocused = false

public onFocus(textfield): void {
    this.isFocused = true
    textfield.android.setSelection(textfield.text.length)
}

public onBlur(): void {
    this.isFocused = false
}