Libgdx - Textfield,显示键盘输入字段

时间:2015-09-25 18:23:56

标签: java android user-interface libgdx textfield

我在Andoird上实现游戏的登录UI。 我使用的是Libgdx文本字段,但有时 Android键盘会覆盖文本字段,因此无法读取输入的文本。

作为解决方案,我想在Android键盘的顶部显示小输入区域,如下所示: Keyboard input field example

我看到一个选项,我用Android Textinput对话框替换默认键盘,但我不喜欢弹出的对话框:

textfield.setOnscreenKeyboard(new TextField.OnscreenKeyboard() {
        @Override
        public void show(boolean visible) {
            //Gdx.input.setOnscreenKeyboardVisible(true);

            Gdx.input.getTextInput(new Input.TextInputListener(){
                @Override
                public void input(String text){
                    tf_pw1.setText(text);
                }

                @Override
                public void canceled(){
                    System.out.println("Cancelled.");
                }
            }, "Title", "Default text...", "Try it out.");
        }
    });

libgdx中是否有内置选项我可以使用,还是应该自己实现?

请提供建议或提示,谢谢! :)

1 个答案:

答案 0 :(得分:2)

如果你想使用内置机制,只需使用 Gdx.input.getTextInput 方法

void getTextInput(Input.TextInputListener listener,
              java.lang.String title,
              java.lang.String text,
              java.lang.String hint)

以下列方式:

    TextInputListener textListener = new TextInputListener()
    {
        @Override
        public void input(String input)
        {
            System.out.println(input);
        }

        @Override
        public void canceled() 
        {
            System.out.println("Aborted");
        }
    };

    Gdx.input.getTextInput(textListener, "Your login: ", "placeholder", "");

第二个选项是制作一个普通的 TextInput ,并通过缩放和更改相机位置将相机对焦于它,这样当用户触摸输入时它将位于屏幕顶部 - 尽管有总是有风险,你会“错过”输入,它将无法正确缩放