每次在android studio中更改webview内容时是否可以显示加载?

我的 android 中有 webview,我可以在其中显示网页。这是安卓代码。

mWebview = (WebView) rootView.findViewById(R.id.webView);
WebSettings mWebviewSettings= mWebview.getSettings();
mWebviewSettings.setDefaultFontSize(17);
mWebviewSettings.setJavaScriptEnabled(true);

mProgress = ProgressDialog.show(getActivity(), null, null, true, false);
mProgress.setContentView(R.layout.progressdialog);
mProgress.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

mWebview.setWebViewClient(new WebViewClient());
// add a WebViewClient for WebView, which actually handles loading data from web
mWebview.setWebViewClient(new WebViewClient() {
    // load url
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (!mProgress.isShowing()) {
            mProgress.show();
        }
        view.loadUrl(url);
        return true;
    }

    // when finish loading page
    public void onPageFinished(WebView view, String url) {
        if(mProgress.isShowing()) {
            mProgress.dismiss();
        }
    }
});

mWebview.setWebChromeClient(new WebChromeClient());
// set url for webview to load
mWebview.loadUrl("https://urlname.com/pagename.php");

我的问题是,当我单击 webview 中的链接时,是否可以在每次 webview 内容更改时显示加载?

埃尔金厄索

您需要创建自定义 webview 客户端,并在其中检查页面更改。它可以用一个boolean变量来完成

private class CustomWebViewClient extends WebViewClient {
    boolean onPageStarted = false;
    Runnable hideLoadingRunnable = new Runnable() {
        @Override
        public void run() {
            if (!onPageStarted ) {
                mProgress.dismiss();
            }
        }
    };
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        onPageStarted = true;
        mProgress.show();
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        onPageStarted = false;            
        yourwebview.postDelayed(hideLoadingRunnable, 1000);

    }
}

根据评论更新

public class WebViewActivity extends Activity {


    WebView mWebview;
    private ProgressBar mProgress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.youractivitylayout);
        super.onCreate(savedInstanceState);
        mWebview = (WebView) findViewById(R.id.webView);
        mProgress = (ProgressBar) findViewById(R.id.yourprogress);
        mWebview.getSettings().setJavaScriptEnabled(true);
        mWebview.getSettings().setDomStorageEnabled(true);
        mWebview.setWebViewClient(new CustomWebViewClient());
    }

    private class CustomWebViewClient extends WebViewClient {
        boolean onPageStarted = false;
        Runnable hideLoadingRunnable = new Runnable() {
            @Override
            public void run() {
                if (!onPageStarted) {
                    mProgress.setVisibility(View.GONE);
                }
            }
        };

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            onPageStarted = true;
            mProgress.setVisibility(View.VISIBLE);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            onPageStarted = false;
            yourwebview.postDelayed(hideLoadingRunnable, 1000);

        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

每次打开android app时显示Toast

Android Studio,每次在Java中单击更改按钮文本

Android Studio每次都会导致蓝屏

每次在Root下启动Android Studio

每次在onResume或onRestart中Android相机崩溃

每次新实例时,Android活动方向更改

每次我按“ Android Studio”按钮时都会崩溃

每次更新到1.8路径时,Android Studio JDK位置都会更改回1.7

每次看到Android Studio 3.1重建项目时都会看到更改

cmd:每次文件更改时都以本机方式运行android

Android Studio 3.0要求为每次启动选择设备

Android Studio 每次都在重新安装 APK

Android按钮不会在每次点击时触发事件

为什么 OnAppearing 在 Android 中每次都不会触发

Android中每次onclick之后ProgressBar的运行速度更快

是否可以在每次调用Servlet时将内容存储在Vector中,而不是存储在会话中

是否可以在每次单击时更改浮动操作按钮的颜色?

Android中的WebView加载过时的内容

每次在Android Studio中构建Android应用时,都要运行特定的测试

在 Powershell 中,是否可以定义每次运行命令时都会更改的文件名?

webview加载网页,但加载后某些内容消失(Android Studio)

每次到达页面底部时加载内容

每次按下后退按钮时,android片段重新加载(onCreate)

每次打开XML文件时,ADT插件“正在为Android XXX加载数据”

在Firefox中的每次加载时更改网站的来源

每次在 Java Android Studio 中都需要在 for 循环中更改变量名称

是否可以在Android Studio中更改每种意图的主题?

每次我使用Nox android播放器时,计算机RSA密钥都会更改

如何在每次应用程序运行(Android)时只显示一次动画?