2009-12-24 39 views
1

我在獲取TextView的高度/寬度時遇到問題。無法獲取Widgets的高度

我的代碼:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView tv1 = (TextView)findViewById(R.id.textview1); 
    int h1 = tv1.getHeight(); 
    TextView tv2 = (TextView)findViewById(R.id.textview2); 
    int h2 = tv2.getHeight(); 
} 

H1是textview1 h2的高度是textview2

這些h1和h2高度總是等於0。

這裏有什麼問題?

請指教。

謝謝。

回答

8

View.getWidth()/View.getHeight()不會給你一個有意義的答案,直到視圖被測量。 閱讀關於how android draws views這裏。
查看此thread瞭解何時可以測量尺寸。

0

如果尚未繪製tv1.getHeight()將返回0(以及tv2.getWidth())。

解決方案將得到高度的觀點是layouted後:

tv1.post(new Runnable(){ 
    public void run(){ 
     int height = tv1.getHeight(); 
    } 
}); 
tv2.post(new Runnable(){ 
    public void run(){ 
     int height = tv2.getHeight(); 
    } 
});