通过单击adView从打开的网页进行备份后,libgdx输入处理无法正常工作

时间:2017-02-21 15:29:59

标签: android libgdx adview

我正在使用libGDX框架创建一个Android游戏。 我的设置屏幕是用scene2d实现的。 我通过实现inputProcessorAdapter类来处理按钮单击事件。将它和Stage添加到InputMultiplexer以进行输入处理。

除了点击屏幕底部的adView,然后从google广告网页返回到屏幕后,一切运行良好输入处理器广告管理系统不再能够捕获返回键。当舞台的Textfield聚焦时,键盘也不再显示。 以下是我的输入处理代码。

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);

等待你的回答或建议。

2 个答案:

答案 0 :(得分:0)

你应该添加

Gdx.input.setCatchBackKey(true);
setInputProcessor调用之后

,所以整个代码看起来应该是

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

答案 1 :(得分:0)

最后,我在官方论坛网站上找到了一个受主题启发的解决方案。 Lifecicle messed up by Admob

以下是我的解决方案代码。

    adView.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            super.onAdClosed();
            gameView.requestFocus();
        }
    });