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

本文介绍了解决Fragment结合WebView时遇到的返回键响应问题。通过重写Fragment的onResume方法并实现特定的监听逻辑,使得应用能正确响应返回键操作,并提供了具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的坑好像比较多,正在一个接一个的踩...
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值