Я нашел обходной путь для своей проблемы, он работает, но я не думаю, что это слишком чисто. Итак, мой сценарий был:
- стол контейнер, содержащий ScrollPane (другой таблицы), при этом прокруткой таблице два TextFields и под ними кнопку Отправить
- контейнер столовый набор для заполнения родителя (полный экран)
- текстовых поля и кнопка выравнивается по нижней части таблицы контейнера
проблема заключалась в том, когда OnscreenKeybord был виден, он охватывает нижние объекты (текстовые поля и кнопка) и часть прокрутки Таблица.
Мое решение/временное решение:
keyboard = new OnscreenKeyboard() {
@Override
public void show(boolean visible) {
Gdx.input.setOnscreenKeyboardVisible(visible);
// Hmmmm...
container.invalidate();
if (visible) {
// TODO get OsK height somehow!!!
container.padBottom(310);
} else {
container.padBottom(0);
}
}
};
textFld1.setOnscreenKeyboard(keyboard);
textFld2.setOnscreenKeyboard(keyboard);
и на InputListener кнопки Submit (на приземление) У меня есть функция очистки, как:
textFld1.setText("");
textFld2.setText("");
stage.unfocus(textFld1);
stage.unfocus(textFld2);
keyboard.show(false);
Таким образом, таблица контейнер будет заполняться, когда отображается мягкая клавиатура, и она будет восстановлена после нажатия кнопки отправки; также скрыта мягкая клавиатура.
Теперь, есть две проблемы с этим обходным путем:
я не нашел способ, чтобы получить высоту мягкой клавиатуры; как вы можете видеть в примере кода, я выбрал произвольное значение для дополнения вверх, поэтому мелодии хорошо выглядят на моем эмуляторе
Если нажата жесткая кнопка, нажата кнопка «Назад» или «ESC» в эмуляторе, но верхнее заполнение таблицы все равно будет; Я не нашел как, чтобы определить, является ли экранная клавиатура видна или не
Если кто-то найдет другое решение моей проблемы, пожалуйста, напишите его.
Спасибо.
Я никогда не пробовал, но постараюсь установить «Gdx.gl.glViewport» с высоты экранной клавиши до высоты экрана и обычной ширины. Я не уверен, если программная клавиша использует один и тот же видовой экран, но если это не так, как вы ищите. – Springrbua
Привет, я попытался выяснить, о чем вы говорите, но я не смог :) Не могли бы вы дать мне подсказку? – JedyKnite
Надеюсь, это поможет вам: http://www.acamara.es/blog/2012/02/keep-screen-aspect-ratio-with-different-resolutions-using-libgdx/. Затем «BlackBorders» должен быть вашим Softkeyboard. – Springrbua