Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能。这很蛋疼,于是各种尝试,最终还是功夫不负有心人。所以只要静下心来仔细研究还是会有结果的。
由于项目的功能开始是在fragment中来实现的,后来发现点击系统返回键的时候效果展示的不对,开始想着在fragment宿主activity中监听返回键的监听的 ,在fragment中方法调用,然后发现用别的方法也可以对系统返回键进行监听;
界面是这样的,顶部有个搜索框,给该文本框加监听,
ediSearch.setFocusable(true);
ediSearch.setFocusableInTouchMode(true);
ediSearch.setOnKeyListener(onKeyListener);
View.OnKeyListener onKeyListener = new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (i == KeyEvent.KEYCODE_BACK) {
dismissPopupWindow();
Logger.e(this, "按下返回键了 ");
}
return false;
}
};
ok,到此搞定,就这几行代码,实现了对返回键 的监听,