您的位置:首页 > 移动开发

Android中Fragment装载WebView 返回键设置问题

2017-02-15 23:39 591 查看
1.
Fragment使用方便快捷,尤其适合在一个Activity中需要切换多个页面的时候使用

2.
最近在使用Fragment + WebView做小Demo的时候,发现只要在首页Activity的Fragment中加载WebView页面的时候,按返回键的总是直接退出整个App,查阅资料发现是Cordova对WebView的返回键做了处理,导致Activity中无法正常使用onBackPressed()函数来监听返回键事件

3.
多方查阅资料发现,可以使用onKeyDown()函数来监听返回按键,但是对于Fragment + WebView 仍然没有效果

4.
继续查阅资料,发现可以把监听事件写到Fragment中,重写onResum() 方法可以很好的解决这个问题,同时也可以设置WebView的前进和回退,参考代码如下:

@Override
public void onResume() {
super.onResume();
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
if( System.currentTimeMillis() - mLastPressBackTime< INTERVAL_OF_TWO_CLICK_TO_QUIT){
((MainActivity)getActivity()).exitAppDirect();
}else{
Utils.showToast(getActivity(),"再按一次退出程序");
mLastPressBackTime = System.currentTimeMillis();
}
}
return true;
}
});
} 5.
Fragment装载WebView的坑好像比较多,正在一个接一个的踩...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息