package com.mathiasluo.designer.view.widget; import android.content.Context; import android.support.v4.widget.SwipeRefreshLayout; import android.util.AttributeSet; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.LinearLayout; /** * Created by MathiasLuo on 2016/3/9. */ public class ProgressWeb extends SwipeRefreshLayout { WebView mWebView; public ProgressWeb(Context context, AttributeSet attrs) { super(context, attrs); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); mWebView = new WebView(context); addView(mWebView); initWebView(); } public void initWebView() { setWebChromeClient(new ProgressWebChomeClient(this)); setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { mWebView.loadUrl(mWebView.getUrl()); } }); } public WebView getWebView() { return mWebView; } public void setWebChromeClient(WebChromeClient wenChomeClient) { mWebView.setWebChromeClient(wenChomeClient); } public void setWebClient(WebViewClient webClient) { mWebView.setWebViewClient(webClient); } public void loadUrl(String url) { mWebView.loadUrl(url); } public class ProgressWebChomeClient extends WebChromeClient { ProgressWeb mProgressWeb; public ProgressWebChomeClient(ProgressWeb mProgressWeb) { this.mProgressWeb = mProgressWeb; } @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { mProgressWeb.setRefreshing(false); } else if (!mProgressWeb.isRefreshing()) mProgressWeb.setRefreshing(true); super.onProgressChanged(view, newProgress); } } }