2009-12-24 40 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(); 
    } 
});