Android - 点击WebView使AppBar消失。

时间:2017-01-17 19:28:43

标签: android webview appbar

我试图在我的应用程序中允许WebView调用。在此调用中,他们应该能够浏览到另一个页面。我也在尝试为应用程序保留一致的AppBar。

我将.xml定义为:

    WebView browser = (WebView) findViewById(R.id.calledAction);
    browser.setFocusable(true);
    browser.setFocusableInTouchMode(true);
    browser.getSettings().setJavaScriptEnabled(true);
    browser.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    browser.getSettings().setDomStorageEnabled(true);
    browser.getSettings().setDatabaseEnabled(true);
    browser.getSettings().setAppCacheEnabled(true);
    browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    browser.loadUrl(sCallToActionLink);

在我的代码中,我正在调用(我正在使用选项并在另一个SO帖子中找到这些选项)但我从第一行和最后一行开始并看到相同的问题(我知道在这种情况下你可以'点击,但我不小心在我的链接中有一个重定向):

{{1}}

这会完美加载链接,并显示我的操作栏。向上按钮将我带到父活动,后退按钮将我带到最后一个被调用的活动。我的问题是,如果我点击一个链接,它会打开一个带有自己的AppBar的新屏幕,该屏幕没有向上按钮。这似乎是一个完全不同的观点。后退按钮仍然有效,但我的计划是提供一个向上按钮,以便用户可以浏览她想要的几个屏幕,然后点击向上按钮返回到我的应用程序中的合理位置。在这种情况下,唯一的办法似乎是反复按下后退按钮。

提前致谢

1 个答案:

答案 0 :(得分:1)

如果您设置了WebView

,则可以在WebViewClient内打开链接

对于API 24+覆盖此方法。

browser.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            view.loadUrl(request.getUrl().toString());
            return false;
        }
    });

如果你支持API< 24然后使用旧方法

browser.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    });