【问题标题】:LibGDX - TextField - TextInputListenerLibGDX - TextField - TextInputListener
【发布时间】:2019-10-31 10:06:36
【问题描述】:

当您在 LibGDX 中点击 TextField 时,有时它会停留在屏幕键盘后面。您看不到您正在输入的内容。 我正在使用 TextInputListener 来避免这个问题:

textPassword.setOnscreenKeyboard(new TextField.OnscreenKeyboard() {
    @Override
    public void show(boolean visible) {
        Gdx.input.getTextInput(new Input.TextInputListener() {
            @Override
            public void input(String text) {
                textPassword.setText(text);
            }

            @Override
            public void canceled() {
            }

        }, "" , "", "");
    }
});

但是通过这种方式,数据输入可以分两步进行:

第 1 步: https://i.ibb.co/vYHGrJj/1.png

第 2 步: https://i.ibb.co/m5D3FMq/2.png

这不是一种用户友好的方法。

是否可以跳过第一步,直接开始第二步?

【问题讨论】:

    标签: android libgdx textfield on-screen-keyboard


    【解决方案1】:

    在我的游戏中,如果没有硬件键盘连接 (isPeriphalAvailable),当用户点击文本字段时,我会打开一个 TextInput 对话框 (Gdx.input.getTextInput)。我建议您也这样做以避免典型问题。

    【讨论】:

      【解决方案2】:

      在 Android 中,有一些关键字可用于此目的。例如,

      <activity
              android:name=".example"
              android:theme="@style/AppTheme.NoActionBar"
              android:windowSoftInputMode="adjustResize" />
      

      adjustResizeadjustResize|stateHiddenadjustPanadjustPan|adjustResize

      您应该在运行您的应用程序的 Android Manifest.Xml 中尝试这些。 但我不确定这是否仍然适用于基本上使用 OpenGL 后端创建的 LibgdxFrame。如果可能的话,我建议您将 Dialog 放在更靠近屏幕顶部的位置。

      请注意,如果您要部署到 iOS,iOS 设备中可能会出现此问题

      【讨论】:

      • 这实际上不适用于 libgdx。在任何情况下,很少需要调整大小,adjustPan 有时会将输入推出屏幕。所以对话框是要走的路。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 2014-04-21
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多