android什么时候第一次做布局?

Bri*_*ian 9 layout android

我需要根据我的Activity中的小部件和视图的初始布局来准备一些对象.我想在初始化步骤中执行它,理想情况是onCreate和onStart.考虑到当我们不在前台时发生变化的可能性,其中一些可能需要在onResume中发生.

所以我检查了我是否可以衡量我的观点是如何布局的.

Log.d("MyApp", "w,h of X is " + findViewById(R.id.X).getWidth() +
      "," + findViewById(R.id.X).getHeight());
Run Code Online (Sandbox Code Playgroud)

我在onCreate,onStart和onResume上运行了这个.每次我得到0,0的宽度,高度.如果我等待onTouchEvent我得到布局信息,那么布局就完成了.

当我看到onResume时,我很惊讶布局没有设置和最终.我预计那些小部件已经布局好了,随时准备摆弄.

hac*_*bod 4

布局是根据需要由视图层次结构完成的。

当您的应用程序启动时,这将是一段时间后onResume()(当您的窗口被调出并放置在屏幕上时)。

了解布局操作的正确方法是通过各种视图层次结构回调View.onSizeChanged()等,如“布局”下所述