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() 调用每秒钟都丢失