WebView在Fragment中点击返回键返回上一页
在大多数情况下,在Activity中实现WebView点击返回键返回上一页是经常遇到的事情,并且很容易解决,如下:
1、在activity_webview.XML文件中定义
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">//无滚动条
2、在Activity中的onCreate()方法初始化WebView:
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webview);
WebView webView = (WebView)findViewById(R.id.webView);
}
3、实现onKeyDown方法如下:
@Override
booleanonKeyDown(intkeyCode,KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK&&webView.canGoBack()) {
webView.goBack();
return true;
}else{
//结束当前页
return super.onKeyDown(keyCode,event);
}
}
注意:添加权限:
那么在Fragment中,我们是如何进行webview点击返回键时返回上一级呢?
如下:
1、在fragment_webview.xml中
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">
2、在Fragment的onCreateView中实现接口onKeyListener
@Override
publicViewonCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_webview,container, false);
WebView webView = (WebView)view.findViewById(R.id.webView);
webView.setOnKeyListener(newView.OnKeyListener() {
@Override
public booleanonKey(View view, intkeyCode,KeyEvent keyEvent) {
if((keyCode == KeyEvent.KEYCODE_BACK) &&webView.canGoBack()) {
getActivity().runOnUiThread(newRunnable() {
@Override
public voidrun() {
webView.goBack();
}
});
return true;
}
return false;
}
});
returnview;
}
更多相关文章
- Android(安卓)SD卡操作
- android全屏去掉title栏的多种实现方法
- Android设置Settings实现:PreferenceActivity【1】
- Android(安卓)Studio 开发依赖库集锦
- FFmpeg的Android平台移植—编译篇
- Android的IPC机制Binder的详解(转发)
- android WebView全屏观看视频 全屏观看直播
- android panellistview 圆角实现代码
- Android(安卓)TabWidget/TabHost的使用