WebView加载期间的片段更改会导致崩溃

时间:2017-03-15 07:43:13

标签: android android-fragments webview

我在片段中使用WebView。用户可以使用导航栏在片段之间切换。

以下代码在加载WebView时运行加载图像,并在加载过程完成时隐藏加载图像。除了在WebView加载过程中 期间切换到另一个片段 时,应用程序大部分时间都崩溃了。

myWebView = (WebView) v.findViewById(R.id.webView);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        WebView webview = (WebView) v.findViewById(R.id.webView);
        myWebView.setWebViewClient(new WebViewClient() {

        // Shows loading image during WebView load
        @Override
        public void onPageFinished(WebView view, String url) {
            //hide loading image
            getView().findViewById(R.id.imageLoading1).setVisibility(View.GONE);
            //show webview
            getView().findViewById(R.id.webView).setVisibility(View.VISIBLE);
        }
    });
        webview.loadUrl("http://www.website.com");

非常感谢可能发生崩溃的原因。

1 个答案:

答案 0 :(得分:0)

这是因为

@Override
        public void onPageFinished(WebView view, String url) {
            //hide loading image
            getView().findViewById(R.id.imageLoading1).setVisibility(View.GONE);
            //show webview
            getView().findViewById(R.id.webView).setVisibility(View.VISIBLE);
        }

您在页面加载之前更改片段,并在onPageFinished()中尝试获取图像并设置其不再存在的可见性。最好是对片段进行一周的引用,并在你的onPageFinished中,首先检查你的webview fragment被破坏或可用的天气。如果可用,则继续设置可见性,否则忽略。