如何让片段内的WebView返回上一个标签?

时间:2017-11-06 09:37:38

标签: java android android-fragments webview android-viewpager

我有一个包含webview的片段。片段在viewPager的所有四个页面中重复使用。我想要的是,当用户点击后退按钮时我希望webView片段返回上一个标签当前的webViewFragment.And最终退出活动。如果webView在这样的活动中,我可以很容易地做到这一点:

@Override
    public void onBackPressed() {
        if (mWebview.canGoBack())
            mWebview.goBack();
        else
            super.onBackPressed();

    }

但是我不能在一个片段中这样做,因为片段不能覆盖onBackPressed()。我怎样才能在viewPager里面的片段中做到这一点

2 个答案:

答案 0 :(得分:0)

您可以在网页视图上实施setOnKeyListener来处理后退按钮。

mWebview.setOnKeyListener(new View.OnKeyListener(){

            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK
                        && event.getAction() == MotionEvent.ACTION_UP
                        && mWebview.canGoBack())
                {
                    mWebview.goBack();
                    return true;
                }
                return false;
            }

        });

如果您的网页浏览中没有上一页,则会触发通常的onBackPressed

希望它对你有所帮助。

答案 1 :(得分:0)

此代码非常适合片段webview backpress。

您可以在Webview上实现setOnKeyListener来处理后退按钮

mWebview.setOnKeyListener(new View.OnKeyListener(){

    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK
                && event.getAction() == MotionEvent.ACTION_UP
                && mWebview.canGoBack())
        {
            mWebview.goBack();
            return true;
        }
        return false;
    }
});