Использование CodenameOne, У меня есть форма, которую пользователь должен заполнить. Однако все компоненты на самом деле представляют собой Контейнеры, которые представляют собой пользовательские функции. В качестве примера у меня был бы TextField
рядом с Button
на Container
, и я бы использовал это Container
как «Component
». Это позволяет мне создавать более сложные функции, объединяя существующие Components
. Хорошим примером того, где это необходимо, является поле пользовательского ввода даты, существующее из 3 TextFields
, или комбинация TextFields
и ComboBoxes
.CodenameOne установка индексации полей для виртуальной клавиатуры
У меня есть «Поле», которое имеет функциональные возможности для контакта Component
.
Это все служит как единое подразделение, позволяющее пользователю выбрать контакт или заполнить его самостоятельно. Buttons
open Dialog
всплывающие окна и т. Д.
Мои проблемы возникают, когда пользователь использует клавиатуру Android. Если это контакт Object
будет вторым «полем», и пользователь нажимает кнопку «Далее» на клавиатуре Android, приложение не знает, в каком поле нужно сосредоточиться. Кроме того, если одно из полей: ComboBox
или Button
, и пользователь нажимает рядом с ним, чтобы достичь этого Component
, клавиатура не закрывается и вместо этого удаляет кнопку «Далее», заменяя ее кнопкой возврата или селектором смайликов ,
Ниже приведен пример ситуации:
Пользователь должен нажать на первом поле, клавиатура появляется, и когда пользователь нажимает рядом, кнопки Далее клавиатуры пропадает, так как непосредственное следующее поле происходит с быть Button
или ComboBox
.
Есть ли способ изменить индекс фокусировки или опустить некоторые поля, когда-либо получающие фокус таким образом? Я пробовал сделать всю вещь Component
, но это не позволяет мне комбинировать другие Components
. Даже если можно сделать родителя Container
a Component
, как я могу решить эту проблему?
Это, похоже, не имело никакого эффекта. Я попробовал добавить nextFocusDown на уровне 'Container' и' Form', но безрезультатно. – Propagandian
Вызовите это в текстовых полях, чтобы указать следующее текстовое поле для каждого –