LibGDX - TextField - TextInputListener - PullRequest
       89

LibGDX - TextField - TextInputListener

2 голосов
/ 31 октября 2019

Когда вы нажимаете на TextField в LibGDX, иногда он может оставаться за экранной клавиатурой. Вы не можете видеть, что вы печатаете. Я использую 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

Это не удобный для пользователя подход.

Можно ли пропустить первый шаг и запустить второй шаг напрямую?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

В моих играх я работаю с открытием диалогового окна TextInput (Gdx.input.getTextInput), когда пользователь нажимает на текстовое поле, если нет аппаратного подключения клавиатуры (isPeriphalAvailable). Я бы порекомендовал вам также сделать это, чтобы избежать типичных проблем.

0 голосов
/ 31 октября 2019

В Android есть несколько ключевых слов, которые можно использовать для этой цели. Например,

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

AdjustResize , AdjustResize | stateHidden , AdjustPan , AdjustPan | AdjustResize

Вам следует попробовать их в Android Manifest.Xml, на котором работает ваше приложение. Но я не уверен, что это все еще работает на LibgdxFrame, который в основном создан с бэкэндом OpenGL. Я советую вам поставить диалоговое окно ближе к верхней части экрана, если это возможно.

Обратите внимание, что эта проблема может возникать на устройствах iOS, если вы хотите развернуть ее на iOS

...