webView只提供了一个监听加载完毕的方法,但是没有提供监听显示完毕的方法。所以经过各种大师的帮忙,发现可以这样做来监听显示完毕,其中用到了回调函数。
1.重写webview,并且添加回调函数。setDf();
- import android.content.Context;
- import android.graphics.Canvas;
- import android.util.AttributeSet;
- import android.webkit.WebView;
-
- public class MyWebView extends WebView{
- interface DisplayFinish{
- void After();
- }
- DisplayFinish df;
- public void setDf(DisplayFinish df) {
- this.df = df;
- }
- public MyWebView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public MyWebView(Context context) {
- super(context);
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- df.After();
- }
- }
import android.content.Context;</p><p>import android.graphics.Canvas;</p><p>import android.util.AttributeSet;</p><p>import android.webkit.WebView;</p><p>public class MyWebView extends WebView{</p><p> interface DisplayFinish{</p><p> void After();</p><p> }</p><p> DisplayFinish df;</p><p> public void setDf(DisplayFinish df) {</p><p> this.df = df;</p><p> }</p><p> public MyWebView(Context context, AttributeSet attrs) {</p><p> super(context, attrs);</p><p> }</p><p> public MyWebView(Context context) {</p><p> super(context);</p><p> }</p><p>//onDraw表示显示完毕</p><p> @Override</p><p> protected void onDraw(Canvas canvas) {</p><p> super.onDraw(canvas);</p><p> df.After();</p><p> }</p><p>}</p><p>
2.调用方法:
- MyWebView.setDf(new DisplayFinish() {
- @Override
- public void After() {
-
- regular();
- }
- });
MyWebView.setDf(new DisplayFinish() {</p><p> @Override</p><p> public void After() {</p><p>// regular()里面存放所有要在webview显示之后显示的内容</p><p> regular();</p><p> }</p><p>});
来源URL:http://tracy061.iteye.com/blog/1632655