我有一个在方法中初始化的Screen
实现。将被初始化和对象。该对象侦听后退按钮。InputMultiplexer
show()
InputMultiplexer
InputAdapter
Stage
InputAdapter
class MyInputAdapter extends InputAdapter {
@Override
public boolean keyDown(int keycode) {
if (keycode == Keys.BACK) {
// do someting
return true;
}
return false;
}
}
class MyScreen implements Screen {
@Override
public void show() {
initInputProcessors();
}
private void initInputProcessors() {
if (backButtonInputProcessor != null) {
initInputMultiplexer();
Gdx.input.setCatchBackKey(true);
Gdx.input.setInputProcessor(inputMiltiplexer);
} else {
Gdx.input.setCatchBackKey(false);
Gdx.input.setInputProcessor(stage);
}
}
private void initInputMultiplexer() {
if (inputMiltiplexer == null) {
inputMiltiplexer = new InputMultiplexer();
inputMiltiplexer.addProcessor(backButtonInputProcessor);
inputMiltiplexer.addProcessor(stage);
}
}
}
一切正常,并且后退按钮反应正常。在以下情况下,会发生此问题。我使用admob。因此,当点击广告横幅时,这将带您进入浏览器。当您从浏览器返回到应用程序时,后退按钮不会被拦截,应用程序只会退出。
我也尝试在InitInputProcessors
方法内部调用resume()
方法,结果相同。
我在LibGDX论坛上的问题的答案已解决。以下是skunktrader的解决方案:
尝试将其添加到您的android MainActivity
@Override public void onResume() { super.onResume(); theView.requestFocus(); theView.requestFocusFromTouch(); }
theView
的返回值在哪里initializeForView()
?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句