android - Fragment中的WebView如何监听其返回监听事件?
问题描述
我在Fragment的布局中放置了一个WebView,想监听WebView的返回键,该如何实现?
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) {if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true;}return false; }}); }
这样监听没用
问题解答
回答1:Fragment 本身是没有 Activity#onBackPressed() 这样的接口的, 所以需要 Activity 主动通知 Fragment :
public class ActivityA extends Activity { ... ...@Override public void onBackPressed() {FragmentA fragment = findFragmentA();if (fragment.onBackPressed()) { return ;}super.onBackPressed(); }}public class FragmentA extends Fragment { public boolean onBackPressed() {if (webview.canGoBack()) { webview.goBack(); return true;}return false; }}
相关文章:
1. ueditor上传服务器提示后端配置项没有正常加载,求助!!!!!2. 配置文件 - nginx多站点配置,无法通过域名访问,使用ip访问会跳转到其中一个站点3. css - transform: translateY(-50%)在360浏览器极速模式下使得文字变模糊了4. css - .clearfix:after中为什么设置display: table5. angular.js - 怎样在使用ng-repeat属性的标签里面监听单个事件,使其能够单个改变CSS。6. 请教: 关于 python 反斜杠转义的疑问7. python - 关于matplotlib的x轴显示的问题8. javascript - vue生成一维码?求助!!!!!急9. mysql优化 - mysql慢查询copying to tmp table10. nginx英文文档的WebSocket proxying部分没看太明白,麻烦推荐一点中文文章
