判斷webview載入完成
阿新 • • 發佈:2018-11-27
專案中appbarlayout中包含webview,需求是載入完成後直接跳轉的評論處,頂部懸停;
當沒有webview時,在載入完成後呼叫appbar.setExpanded(false)沒有問題;
當含有webview顯示時,由於webview載入的原因,開始是appbar關閉,載入完成後會開啟,所以這裡需要監聽webview載入完成。
webview本身的方法onProgressChange以及onPageFinished無用
所以重寫onDraw(),在繪製完成後呼叫介面;
public class MyWebView extends WebView { public interface OnDrawFinish{ void After(); } OnDrawFinish df; public void setDf(OnDrawFinish drawFinish) { this.df = drawFinish; } public MyWebView(Context context, AttributeSet attrs) { super(context, attrs); } public MyWebView(Context context) { super(context); } //onDraw表示顯示完畢 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); df.After(); } protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { heightMeasureSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }
大功告成