android 关于为什么在onCreate里调用view.getChildAt.getLeft() 没有值!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 关于为什么在onCreate里调用view.getChildAt.getLeft() 没有值!相关的知识,希望对你有一定的参考价值。

关于为什么在onCreate里调用view.getChildAt(1).getLeft() =0 没有值! 

 

因为跟android 页面生命周期有关系!

我们都知道安卓页面生命周期如下 onCreate 到 onStart 到onResume 到onPause到onStop到onDestroy  

但是还有3个没列出来,就是 measure(测量) - layout(布局)-draw(开始画) 

在onCreate的时候没有执行这3步,所以在onCreate里调用view.getChildAt(1).getLeft() =0 没有值! 

 

解决办法:

view_Globa.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

@Override
public void onGlobalLayout() {
view_Globa.getChildAt(1).getLeft()
}
});

以上是关于android 关于为什么在onCreate里调用view.getChildAt.getLeft() 没有值!的主要内容,如果未能解决你的问题,请参考以下文章

Android问题:关于SQLiteOpenHelper中的onCreate创建多个表,调试时找不到表名?

Android app启动activity并调用onCreate()方法时都默默地干了什么?

Android在onCreate()方法中动态获取TextView控件的高度

Android 11 onCreate() 调用每秒钟都丢失

在 OnCreate() Android 中为联系人调用 onActivityResult

如何使用 Android 缓存视图并避免每次都调用 onCreate