无法获得小部件的高度

时间:2009-12-24 05:29:21

标签: android

获取TextView的高度/宽度时遇到问题。

我的代码:

@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.

这里有什么问题?

请建议。

感谢。

2 个答案:

答案 0 :(得分:8)

在测量视图之前,

View.getWidth()/View.getHeight()不会给您有意义的答案。 在此处阅读how android draws views 请参阅此thread以了解测量尺寸何时可用。

答案 1 :(得分:0)

如果没有绘制,

tv1.getHeight()将返回0(以及tv2.getWidth())。

解决方案是在你的视图布局后获得高度:

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