我正在使用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);
等待你的回答或建议。
答案 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();
}
});