首页 > 解决方案 > 同一表单中的多个闪烁光标

问题描述

我在同一个表单中的所有文本字段中有多个闪烁的光标。无论我在哪个 TextField 中输入,它们都在闪烁。

它发生在模拟器、Android、iOS 和 Javascript 中。

我无法生成测试用例:我所有的测试用例都很好,这种错误行为仅在我的应用程序中,在更改表单和可编辑状态后。

你能给我任何提示来理解/调查/解决这个问题吗?

谢谢

标签: codenameone

解决方案


更新的答案

我的旧答案仅包含一个临时解决方法(field.setCursorBlinkTimeOff(1000 * 3600);适用于所有TextFields),它有几个问题会造成糟糕的使用体验。

现在我找到了一个合适的解决方案,就是不要重复使用相同TextField的 s (从具有领导者组件的“容器 A”中删除,并将它们放入另一个没有领导者组件的“容器 B”中)。此问题与“容器 A”具有领导者组件这一事实有关。

因此,在这种情况下,我的解决方案是从“Container A”中删除 TextFields,并使用以下方法将新的 TextFields 添加到“Container”B:

private Component replaceWithNewTextField(Component cmp) {
        if (cmp instanceof TextField) {
            // it creates the new TextField
            TextField field = new TextField();
            field.setUIID(cmp.getUIID());
            field.setText(((TextField) cmp).getText());
            field.setName(((TextField) cmp).getName());
            field.setEditable(((TextField) cmp).isEditable());
            ((TextArea) field).setSingleLineTextArea(((TextArea) cmp).isSingleLineTextArea());
            ((TextArea) field).setRows(((TextArea) cmp).getRows());
            ((TextArea) field).setConstraint(((TextArea) cmp).getConstraint());

            etc. 

推荐阅读