【问题标题】:CodenameOne set indexing of fields for virtual keyboardCodenameOne 为虚拟键盘设置字段索引
【发布时间】:2017-01-30 17:15:38
【问题描述】:

使用 CodenameOne, 我有一个用户需要填写的表单。然而,所有组件实际上都是代表自定义功能的容器。例如,我将在Container 上同时添加一个TextField 和一个Button,并且我会将Container 用作“Component”。这允许我通过组合现有的Components 创建更高级的功能。 有必要这样做的一个很好的例子是存在 3 个TextFieldsTextFieldsComboBoxes 的组合的自定义日期输入字段。

我有一个“字段”,它具有联系人Component 的功能。

所有这些都作为一个“单元”,以便用户选择联系人或填写自己的联系人。 Buttons打开Dialog弹窗等

当用户使用 Android 键盘时,我的问题就出现了。如果此联系人Object 是第二个“字段”并且用户按下 Android 键盘上的“下一步”按钮,则应用程序不知道要关注哪个字段。 此外,如果其中一个字段是ComboBoxButton,并且用户按下next 以到达Component,则键盘不会关闭,而是删除“下一步”按钮,将其替换为返回按钮或表情选择器。

以下是一个示例情况:

用户将按下第一个字段,键盘显示,当用户按下下一个时,键盘的下一步按钮消失,因为紧接的下一个字段恰好是 ButtonComboBox

有没有办法改变焦点索引,或者省略某些字段以这种方式获得焦点?我试着把整个东西变成Component,但这不允许我结合其他Components。即使可以将父 Container 设为 Component,我将如何解决这个特定问题?

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    默认行为是为此功能使用“下一个焦点向下”,因此只需在每个组件上使用setNextFocusDown(nextTextField)。请注意,ComboBox 将无法按预期工作,尽管您可能希望将其更改为 AutoCompleteTextField

    【讨论】:

    • 这似乎没有任何效果。我尝试在ContainerForm 级别上添加nextFocusDown,但无济于事。
    • 在文本字段上调用它以指示每个文本字段的下一个文本字段
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多