2017-02-21 7 views
0

Я создаю игру для Android с инфраструктурой libGDX. Мой экран настроек реализован с помощью scene2d. Я обработал событие нажатия кнопки мыши, выполнив класс inputProcessorAdapter. Добавьте это и Stage to InputMultiplexer для обработки ввода.Обработка входных данных libgdx не работает после поддержки с веб-страницы, открывшейся нажатием adView

Все работает хорошо за исключением того, что после нажатия adView в нижней части экрана, а затем возвращается к экрану с веб-страницы рекламы Google. Задняя клавиша больше не может быть захвачена inputProcessorAdapter. И клавиатура также больше не отображается при фокусировке Textfield of Stage. Ниже приведен код ввода.

inputProcessor = new InputProcessorAdapter() { 
    @Override 
    public boolean keyDown(int keycode) { 
     if (keycode == Input.Keys.BACK) { 
      // Go back to main menu 
      stage.unfocusAll(); 
      Gdx.input.setOnscreenKeyboardVisible(false); 
      SettingScreen.this.game.setScreen(new MainMenuScreen(SettingScreen.this.game)); 
     } 
     return false; 
    } 
}; 

InputMultiplexer multiplexer = new InputMultiplexer(); 
multiplexer.addProcessor(inputProcessor); 
multiplexer.addProcessor(stage); 
Gdx.input.setInputProcessor(multiplexer); 

Ожидание вашего ответа или совета.

ответ

0

Вы должны добавить

Gdx.input.setCatchBackKey(true); 

после setInputProcessor вызова, чтобы весь код должен выглядеть

... 
Gdx.input.setInputProcessor(multiplexer); 
Gdx.input.setCatchBackKey(true); 
... 
+0

Большое спасибо за ваш ранний ответ. Я пробовал ваше решение, но оно все еще не работает. На самом деле я добавил «Gdx.input.setCatchBackKey (true);' в '' методе 'create()' класса игры libgdx с начала. – go3boy

0

Наконец, я нашел решение, вдохновленное тему на официальном сайте форума. Lifecicle messed up by Admob

Ниже приведено мое решение.

adView.setAdListener(new AdListener() { 
     @Override 
     public void onAdClosed() { 
      super.onAdClosed(); 
      gameView.requestFocus(); 
     } 
    }); 
Смежные вопросы