私が見つけた:
(1) webview には 2 つの高さがあります。MeasureHeight と contentHeight。contentHeight は webcoreThread から計算されることに注意してください。2 つの高さは常に一致しません。
(2) レイアウトが終了したら、webview がコンテンツをリロードします。contentHeight は measureHeight と一致しています。
したがって、1つの解決策は、レイアウトが完了した後にwebviewにコンテンツをリロードさせることだと思います。
私の解決策:
(1) webview を拡張します。(2)onlayout(),dispatchDraw()をオーバーライド,</p>
@Override
protected void dispatchDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.dispatchDraw(canvas);
//mchanged == is parameter in onlayout()
//finished == have run the code below !
if (!mchanged && !finished) {
//
String vHtml =".........." ;//your html content
this.loadDataWithBaseURL("目录浏览", vHtml, "text/html", "utf-8", null);
finished = true;
}
}
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
super.onLayout(changed, l, t, r, b);
// tttttt
if (!changed) {
this.mchanged = changed;//false
}
}
(3) webview は、すべてのコンテンツをロードする前に初期化が必要です。
public void intiFlag() {
mchanged = true;
finished = false ;
}
お役に立てれば。