返回零我使用ViewTreeObserver在的OnCreate方法讓我的工具欄和底部佈局的高度,但仍然我得到0高度,爲什麼呢?難道我做錯了什麼?的getHeight()由ViewTreeObserver
這是我特意打電話:
ViewTreeObserver viewTreeObserver = toolbar.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onGlobalLayout() {
// Ensure you call it only once :
toolbar.getViewTreeObserver().removeOnGlobalLayoutListener(this);
height1 = toolbar.getMeasuredHeight();
}
});
final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.bottom);
ViewTreeObserver vto = linearLayout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onGlobalLayout() {
// Ensure you call it only once :
linearLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
height2 = linearLayout.getMeasuredHeight();
}
});
Toast.makeText(getApplicationContext(), String.valueOf(height1) + String.valueOf(height2), Toast.LENGTH_SHORT).show();
你嘗試的getWidth()或的getHeight()的處理程序?下面是示例: 新處理程序()postDelayed(新的Runnable(){ \t \t \t @Override \t \t \t公共無效的run(){ \t \t \t \t height1 = toolbar.getMeasuredHeight(); \t \t \t。 \t身高2 = linearLayout.getMeasuredHeight(); \t \t \t} \t \t},1000); –
我也試過這個,但沒有解決方案。 – Spartan
如果佈局的高度爲0,該怎麼辦?你確定佈局是可見的嗎?我問這是因爲我之前在我的項目中錯過了這個。 –