返回键监听在Android 9 (API 28)后有问题

同样的代码,在API Level 26是没问题的,

但是一更改到28之后,返回键的监听就失效了,
点击返回键后直接关闭了游戏

请问有没有人遇到同样的问题?

1赞

你试试在游戏内点击一个Editbox弹出输入法之后,再试试返回键有效没? 如果有效,再告诉你怎么处理。

1赞

真的有效,为什么点了EditoBox之后,再点返回键就有效了,这真神奇

求大神指点,怎么修改才好?感激不尽

前辈,我照您的方式修改后,还是一样,点了返回键直接就退出游戏了

尝试用android studio做debug,发现在点击EditBox之前,的确按返回键是没有进入onKeyDown的事件…

呃,我不懂为什么切到api28后就没有自动focus…
理论上这不是应该要自动有的吗 0.0

好吧,我对android太不熟悉了,

解决办法是,在Activity的onCreate中的最后,为SurfaceView加上focus
mGLSurfaceView.requestFocus();
就搞定了…

这搞了我好几天

9赞

抱歉,没有及时回复,具体原因没查,也是这样处理的。

1赞

没事,还得谢谢你指点方向,感激lol

这个错误啊

… 這可以找一下的吧…
this.getGLSurfaceView().requestFocus();

1赞

谢谢,非常感谢

我草,多谢。果然是这样,我就说怎么点击了EditoBox之后就可以了。不点就不行

感谢,刚刚也遇到这个问题了,幸亏大佬发帖。不然我都不知道要搞几天

不知道是不是这个引起的,googleplay有这么个奔溃 。
Exception java.lang.IllegalArgumentException: parameter must be a descendant of this view
at android.view.ViewGroup.offsetRectBetweenParentAndChild (ViewGroup.java:6380)
at android.view.ViewGroup.offsetDescendantRectToMyCoords (ViewGroup.java:6309)
at android.view.ViewRootImpl.scrollToRectOrFocus (ViewRootImpl.java:4865)
感觉也是跟那个focus有关系

mark!!!