我正在创建一个自定义的 Android 组件,该组件有时需要使用 onBackPressed 事件(例如,自定义 ViewGroup 中有一个弹出菜单,如果它正在显示,则返回按钮事件将其关闭并被使用,否则将被忽略)。那可能吗?我可以从我的 ViewGroup 子类中拦截此事件吗?如何拦截?
编辑:我尝试像 Android 文档所暗示的那样覆盖 onKeyPreIme,该方法永远不会从 ViewGroup 中调用。
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event)
{
return true;
}
在onKeyPreIme文档中它说:
在与视图层次结构关联的任何输入方法处理键事件之前处理它。这可以用于在 IME 消费之前拦截特殊情况下的关键事件;一个典型的例子是处理 BACK 键来更新应用程序的 UI,而不是让 IME 看到它并自行关闭。