无法在android上获取视图的正确位置

无法在android上获取视图的正确位置,android,Android,我正在尝试使用getX()和getY()函数获取textView的位置 从下面的代码可以看出,onCreate()方法中使用的textView.getX()和textView.getY()返回一个值0.0 但是checkCoord中使用的textView.getX()和textView.getY()为getX和getY函数返回32.0 我无法理解getX()和getY()的值变化。请帮忙。代码如下所示: public class MainActivity extends Activity {

我正在尝试使用
getX()
getY()
函数获取
textView
的位置

从下面的代码可以看出,
onCreate()
方法中使用的
textView.getX()
textView.getY()
返回一个值
0.0

但是
checkCoord
中使用的
textView.getX()
textView.getY()
getX
getY
函数返回
32.0

我无法理解
getX()
getY()
的值变化。请帮忙。代码如下所示:

public class MainActivity extends Activity {
        TextView textView;
        Button bt;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);

                   textView = (TextView) findViewById(R.id.textView1);

                   bt = (Button) findViewById(R.id.button1);

                   System.out.println("Inside onCreate textView X : " + textView.getX());
                   System.out.println("Inside onCreate textView Y : " + textView.getY());

                   bt.setOnClickListener(new View.OnClickListener() {

                   @Override
                   public void onClick(View v) {
                   // TODO Auto-generated method stub
                   checkCoord(v);

                   }
                   });

       }

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
       }

       public void checkCoord(View view) {

            System.out.println("Inside checkCoord textView X : " + textView.getX());
            System.out.println("Inside checkCoord textView Y : " + textView.getY());

       }

}

差异与活动的生命周期有关,请参见此处:


基本上,在onCreate中,您的视图实际上还没有在屏幕上绘制,因此没有要返回的值。但是,当您通过onClickListener调用该方法时,视图已绘制,因此有值返回

需要textview的位置???
view
s在调用
onLayout()
后将有x,y位置。并且您在
onCreate()
中得到了正确的值,因为绘图仍然没有执行。。。