gpt4 book ai didi

android - 如何 "push up"显示软键盘时的屏幕

转载 作者:行者123 更新时间:2023-11-29 00:23:31 25 4
gpt4 key购买 nike


我在我的 LibGDX android 应用程序中有一个表,在一些文本字段(一行)下面和一个按钮(提交)下面。我的问题是,当文本字段获得焦点(单击它)并且出现软键盘时,如何“滑动”表格、文本字段和按钮?换句话说,如何让软键盘覆盖我的其他对象。此解决方案可能 与以下问题相关: How can i find the height of soft-keyboard in a LibGDX application

非常感谢。

最佳答案

我找到了解决我的问题的方法,它有效,但我认为它不太干净。所以,我的场景是:

  • 一个容器表,包含一个 ScrollPane(另一个表),在这个滚动表下面有两个 TextField,在它们下面有一个提交按钮
  • 容器表设置为填充父级(全屏)
  • 文本字段和按钮与容器表格的底部对齐

问题是当 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 上(在触摸时)我有一个清理功能,如:

    textFld1.setText("");
textFld2.setText("");
stage.unfocus(textFld1);
stage.unfocus(textFld2);
keyboard.show(false);

这样容器表会在软键盘显示时补上,按下提交按钮后恢复;软键盘也被隐藏了。

现在,此解决方法存在两个问题:

  • 我还没有找到获取软键盘高度的方法;正如您在示例代码中看到的那样,我为向上填充选择了一个任意值,因此在我的模拟器上看起来不错

  • 如果按下模拟器中的硬按钮Back或ESC,软键盘将隐藏,但表格的上填充仍然存在;我没有找到如何确定软键盘是否可见

如果有人为我的问题找到其他解决方案,请发布。

谢谢。

关于android - 如何 "push up"显示软键盘时的屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com