View处理事件

来源:互联网 发布:python 语音实时采集 编辑:程序博客网 时间:2024/06/05 20:44

    今天,在Fragment里面加入了一个WebView,想让webView在点击了一个链接之后,我按返回键是回到webview的上一个页面,而不是将整个webview回退。开始,想在activity里面处理keyDown事件,但是在activity里面获得webview的引用,就破坏了程序封装性,更准确的说是违反了狄米特法则。

    思路出现很大的错误,只要是view就可以,自己捕获点击事件或者按键事件。所以,webview也不例外,这样自己可以覆写onKeyDown事件,或者添加监听器。

mWebView.setOnKeyListener(new OnKeyListener() {                @Override                public boolean onKey(View v, int keyCode, KeyEvent event) {                                    if (KeyEvent.ACTION_DOWN == event.getAction()) {                        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())                        {                            // 返回键退回                            mWebView.goBack();                            return true;                        }                        // If it wasn't the Back key or there's no web page history, bubble up                        // to the default                        // system behavior (probably exit the activity)                        return false;                    }                    return false;                                    }            });


0 0
原创粉丝点击