3
我需要獲取網頁視圖的高度,以便可以通過編程方式計算出頂部邊距。我使用的AddOnPreDraw方法可以在手機上正常工作,但只要在平板電腦上使用,它就會返回null。Android獲取網頁視圖的高度
ViewTreeObserver viewTreeObserver = topContent.getViewTreeObserver();
viewTreeObserver.addOnPreDrawListener(new OnPreDrawListener() {
@Override
public boolean onPreDraw() {
int height = topContent.getMeasuredHeight();
if (height != 0) {
Log.d("Web View Height", "Continue Height: " + height);
RelativeLayout instructions = (RelativeLayout) findViewById(R.id.info_layout);
instructions.post(mAddTabletMargin);
}
topContent.getViewTreeObserver().removeOnPreDrawListener(
this);
return false;
}
});
所以問題一是爲什麼它可以在手機上工作,但不是平板電腦? 和問題2有沒有其他的方法可以用來獲取webvie的高度?
在此先感謝。
這看起來很完美,但唯一的問題是,爲什麼我的方式在諸如nexus 5和samsung galaxy s4等手機上工作? – Paddy1990
它仍然沒有得到高度,它只在nexus 7上繪製webviews之前運行我的onPreDraw方法! – Paddy1990
多數民衆贊成那是不可能的確保你在UIthread上運行這個方法 –