protected void onCreate(Bundle savedInstanceState)
{
 
super.onCreate(savedInstanceState);
 
setContentView(R.layout.main);      Log.d("a", String.valueOf(tableLayout.getTop()
   +"Bottom:"+ String.valueOf(tableLayout.getBottom())
     +"Height:"+ String.valueOf(tableLayout.getHeight())
   +"Left:"+ String.valueOf(tableLayout.getLeft())
   +"Right:"+ String.valueOf(tableLayout.getRight())
 

}为什么都是 “0”!!!!有什么方法能获得控件 宽高数据!???

解决方案 »

  1.   


    是的,onCreate对于布局相关的都还没有初始化完,无法获取
      

  2.   

    LS们说的都对。不过你应该在需要这些数据的地方前面来获取一下,比如说,你点击一个button,需要这些宽高信息,那就在onClick的时候获取一下。
      

  3.   


    就是要在初始化获取
    onstart() 无效!!!!!依然无法获取!
      

  4.   


    很简单  就是一个tablelayout  初始化  获取高度你xml 怎么写的???
      

  5.   

    Activity的生命周期:
    onCreate--onStart--onResume--onPause--onStop--onDestroy
    在onStart方法里试试吧
      

  6.   

    我也觉得应该放在onstart()里,要不LZ把xml和这个代码都发上来看看
      

  7.   

    ViewTreeObserver vto = imageview.getViewTreeObserver();        vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {            @Override            public void onGlobalLayout() {                // 此句若不执行,不影响控件宽高的获取结果,但是当前的onGlobalLayout()会执行多次,执行此句,当前方法只会执行一次                imageview.getViewTreeObserver().removeGlobalOnLayoutListener(                        this);                Log.i("TAG", imageview.getMeasuredHeight()                        + " -- - " + imageview.getHeight());            }        });