2015-09-25 143 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