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 中不起作用

Android - 恢复 Fragment WebView 状态以避免重新加载

WebView在Fragment中点击返回键返回上一页