Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
呼叫可视性OnPageFinished-Android_Android_Webview_Visibility - Fatal编程技术网

呼叫可视性OnPageFinished-Android

呼叫可视性OnPageFinished-Android,android,webview,visibility,Android,Webview,Visibility,如何在页面停止加载时调用可见性? 我想使progressbar不可见,但我使用的代码不允许我覆盖它: public void onPageFinished(WebView view, String url) { findViewById(R.id.progressBar1).setVisibility(View.GONE); } 活动: public class Browser extends Activity { private WebView webView; p

如何在页面停止加载时调用可见性? 我想使progressbar不可见,但我使用的代码不允许我覆盖它:

public void onPageFinished(WebView view, String url) {
    findViewById(R.id.progressBar1).setVisibility(View.GONE);
}
活动:

public class Browser extends Activity {

    private WebView webView;
    private EditText urlEditText;
    private ProgressBar progress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_browser);

        webView = (WebView) findViewById(R.id.webView1);
        webView.setWebChromeClient(new MyWebViewClient()); 

        CookieManager.getInstance().setAcceptCookie(true);//Enable Cookies
        webView.getSettings().setJavaScriptEnabled(true);//Enable Java Script
        webView.setWebViewClient(new HelloWebViewClient());
        webView.loadUrl("https://www.facebook.com/"); //Set Home page
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//Remove ScrollBars
        webView.getSettings().setDefaultFontSize(12);//Set Font Size
        webView.getSettings().setLoadsImagesAutomatically(true);//Enable Image Loading
        webView.getSettings().setPluginState(PluginState.ON);//Enable Flash
        webView.setBackgroundColor(0x00000000);//Transparent Screen When Loading
        // webView.getSettings().setBuiltInZoomControls(true);//Set Zoom Controls 

        webView.getSettings().setAppCacheMaxSize(1024*1024*8);//Set Cache (8mb)
        String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();//Set Cache (8mb)
        webView.getSettings().setAppCachePath(appCachePath);//Set Cache (8mb)
        webView.getSettings().setAllowFileAccess(true);//Set Cache (8mb)
        webView.getSettings().setAppCacheEnabled(true);//Set Cache (8mb)
        webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);//Set Cache (8mb)

        progress = (ProgressBar) findViewById(R.id.progressBar1);
        progress.setMax(100);

        Button openUrl = (Button) findViewById(R.id.goButton);
        openUrl.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                String url = urlEditText.getText().toString();

                if (validateUrl(url)) {
                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl(url);
                    Browser.this.progress.setProgress(10);
                }
            }

            private boolean validateUrl(String url) {
                return true;
            }
        });
    }

    private class MyWebViewClient extends WebChromeClient {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {         
            Browser.this.setValue(newProgress);
            super.onProgressChanged(view, newProgress);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void setValue(int progress) {
        this.progress.setProgress(progress);       
    }

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView webview, String url) {
            webview.loadUrl(url);
            return true;
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
            webView.goBack();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }

}

当newProgress等于100时,您可以在progressChanged方法上设置“不可见”。

您应该可以直接将其扔到那里

private class HelloWebViewClient extends WebViewClient {

    @Override
    public void onPageFinished(WebView view, final String url) {
        progress.setVisibility(View.GONE); // or View.INVISIBLE, whatever suits your needs
        // Or this for more clarity: Browser.this.progress.setVisibility(View.GONE);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView webview, String url) {

        webview.loadUrl(url);
        return true;
    }
}