2015-09-25 144 views
0

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

至于解决方案,我想在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选项构建我可以使用,还是应该由我自己实现它?

请给意见或提示,谢谢! :)

如果你想使用内建机制

回答

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并通过缩放和改变摄像头位置将它聚焦在它上面,使它在当用户将触摸输入 - 虽然总是有风险,你会“错过”输入,它不会正常缩放

+0

你的答案不完全是我的问题的答案,但我喜欢你的第二个选项。谢谢你的帮助! :) – Sandrogo