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的坑好像比较多,正在一个接一个的踩...
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的坑好像比较多,正在一个接一个的踩...
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件