项目中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);
}
}
大功告成