Android中Fragment装载WebView 返回键设置问题
Posted @一支烟的功夫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中Fragment装载WebView 返回键设置问题相关的知识,希望对你有一定的参考价值。
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的坑好像比较多,正在一个接一个的踩...
以上是关于Android中Fragment装载WebView 返回键设置问题的主要内容,如果未能解决你的问题,请参考以下文章
ProgressBar 没有出现在位于 Fragment 的 WebView 中,如何在 WebView android 中显示 ProgressBar?
Android Fragment使用 Activity, Fragment, WebView的状态保存和恢复
最佳实践Android设计:隐藏的webview、fragment、service?
Webview 在 Fragment Android Studio 中不起作用