在Fragment中重写返回键以让WebView使用返回功能
来源:互联网 发布:高中女神 体验知乎 编辑:程序博客网 时间:2024/06/13 13:34
首先我是实现一个PagerView的页面滑动效果,并在里面添加了两个Fragment当作子页面。其中一个Fragment中使用WebView显示网页。
于是遇到了这样的问题:
1、使用网页的时候,从一个页面跳到另一个页面,当想返回上一个页面时,点击返回按钮,应用直接就退出了。
2、解决问题1之后,WebView加载了一个重定向的页面,点击返回按钮页面无法正常返回,多次点击才能返回。
问题1:
其实就是重写onKeyDown 方法,但是Fragment类没有onKeyDown方法,怎么办呢,就在MainActivity中重写。
如下:
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- if(currentIndex==1){
- WebFragment.clickBack(keyCode, event);
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(currentIndex==1){ WebFragment.clickBack(keyCode, event); return true; } return super.onKeyDown(keyCode, event); }可以看到,在MainActivity的onKeyDown方法中,当页面处在有WebView的页面时(currentIndext==1),我调用了WebFragment的clickBack方法并传递keyCode和event两个参数。
是的,我在WebFragment中添加了一个静态方法clickBack,接收MainActivity传来的keyCode和event参数,这样就可以自定义onKeyDown方法了。如下:
- public static boolean clickBack(int keycode,KeyEvent event){
- if(keycode==KeyEvent.KEYCODE_BACK&&webView.canGoBack()){
- webView.goBack();
- }
- return true;
public static boolean clickBack(int keycode,KeyEvent event){ if(keycode==KeyEvent.KEYCODE_BACK&&webView.canGoBack()){ webView.goBack(); } return true; }这样当用户点击返回按钮时,WebView的页面就会goBack了。
问题2:
只要重写WebViewClient里面的shouldOverrideUrlLoading方法即可,如下:
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- // TODO Auto-generated method stub
- return false;
- }
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub return false; }是的,就这么简单,只要返回false就行了。我也不知道为什么,这是从别人那里看来的。
注:以上的方法是我进行了大量搜索之后查到的最简单的解决办法,可能不是最好的解决办法,网络上也还有其他许多针对这两个问题的解决办法。
0 0
- 在Fragment中重写返回键以让WebView使用返回功能
- 在Fragment中重写返回键以及WebView加载重定向页面返回问题
- Fragment中WebView实现返回上一级网页功能
- WebView在Fragment中实现返回上一个网页
- Android之WebView在Fragment中实现返回上一个网页
- 如何在Fragment中拦截webview的返回事件
- 在Fragment中处理WebView的返回事件
- Fragment中加载网页(WebView)监听Back键 ,实现返回上一页的功能
- Fragment Webview 返回键监听
- Android中Fragment装载WebView 返回键设置问题
- 让Fragment监听返回键
- 在Fragment中监听返回键
- Fragment中设置监听返回键的功能
- android中加载webview自定义的返回键具有返回上一页的功能
- android模拟返回键的功能以及重写返回键
- android模拟返回键的功能以及重写返回键
- android重写返回键,实现返回键的一些功能
- 在Fragment加了个webview 怎么监听返回事件
- 如何在powerpoint 2007 中播放 swf文件
- linux 日常命令 scp
- 如何判断sim卡是否有插入mtk
- Spring自定义占位符替换(PropertyPlaceholderConfigurer)
- 决定嵌入式工程师薪资待遇的几个关键点
- 在Fragment中重写返回键以让WebView使用返回功能
- Hexo博客更换主题和Markdown使用
- sqlserver虚拟表的创建,赋值,及循环读取插入值给另一张表
- UNION 使用方法
- 关于tableView的section悬浮
- Ubuntu下文件及目录对比工具 Meld
- Python列出shadow密码
- hsf开源dubbo学习-1-服务提供者&服务消费者&依赖
- Spring Boot 快速搭建的三种方式