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. css - transform: translateY(-50%)在360浏览器极速模式下使得文字变模糊了2. ueditor上传服务器提示后端配置项没有正常加载,求助!!!!!3. python - 关于matplotlib的x轴显示的问题4. javascript - 网页打印页另存为pdf的代码一个问题5. nginx英文文档的WebSocket proxying部分没看太明白,麻烦推荐一点中文文章6. python - Scrapy ItemLoader数据清洗疑问7. javascript - vue生成一维码?求助!!!!!急8. css - .clearfix:after中为什么设置display: table9. 请教: 关于 python 反斜杠转义的疑问10. mysql优化 - mysql慢查询copying to tmp table
