Android:OnGlobalLayout问题

时间:2011-02-07 08:39:26

标签: java android textview

在我的代码中,我试图找到textview所占据的高度..

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    t = new TextView(this);
    ViewTreeObserver vto = t.getViewTreeObserver(); 
    vto.addOnGlobalLayoutListener(this);
    t.setText("This is to test the text\n Some Text \n Another ..");
    t.append("\nafter something");
    Toast.makeText(this, " The value at num = "+num,Toast.LENGTH_SHORT).show();
    setContentView(t);
}

public void onGlobalLayout() {
    // TODO Auto-generated method stub
    num=t.getHeight();
    Toast.makeText(this, "Hellooo !! height is "+num, Toast.LENGTH_SHORT).show();
}

onCreate()中num的值总是为零,但是onGlobalLayout()中的atlast,正确的高度存储在num中,但是我无法使用它,因为它是应用程序的结尾。 是否有可能在应用程序中间获取文本长度?

原谅,如果上述问题有任何错误..

谢谢, Siva Kuamr

1 个答案:

答案 0 :(得分:1)

这不是应用程序的结束,那是Android完成布局的时候。如果您需要将其作为应用程序的“中间”,请在onGlobalLayout()中调用一些将使用高度值的方法。请参阅Event-driven programming