У меня проблема с Android, но не с IOS.
У меня есть базовый экран, где у меня есть 10 TextFields внутри прокручиваемого контейнера Y_AXIS; Я поместил это в контейнер BorderLayout.CENTRE внизу.
Затем у меня есть кнопка в том же базовом контейнере, но в BorderLayout.SOUTH.
Когда пользователь нажимает на любое TextField, ситуация для его редактирования, отображается клавиатура, и она размещает содержимое BorderLayout.SOUTH, т.е. кнопка над клавиатурой, скрывающая некоторые поля. Я хочу, чтобы кнопка была скрыта под клавиатурой в соответствии с IOS.
Поскольку я только что осознал, что это происходит, у меня теперь есть несколько экранов, на которых это не происходит, если у меня есть определенное сочетание контейнеров и полей, некоторые экраны, где он раздавливает мои текстовые поля, и некоторые, где это происходит. просто скрывает еще одно поле внизу, которое я хочу видеть пользователю.
Я приложил основную страницу, показывающую это. Обратите внимание, что это нормально на симуляторе, если клавиатура не отображается.
Большое спасибо
public class Keyboard {
private Form currentForm = new Form("", new BorderLayout());
public void buildPage() {
Container c = new Container(new BorderLayout());
Container y = new Container(new BoxLayout(BoxLayout.Y_AXIS));
y.setScrollableY(true);
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
y.add(new TextField());
c.add(BorderLayout.CENTER, y);
c.add(BorderLayout.SOUTH, buildButton());
currentForm.add(BorderLayout.CENTER, c);
currentForm.getAllStyles().setBgColor(0x65363);
currentForm.getAllStyles().setBgTransparency(255);
currentForm.setFormBottomPaddingEditingMode(true);
currentForm.show();
}
private Component buildButton() {
Button button = new Button("Hide this button");
return button;
}
}