之前看郭霖文章讲LayoutInflater 的时候,有讲到在加载的layout中最外层布局设置绝对宽高是无效的。我们在Activity中setContenView()的时候,其实质也是利用的LayoutIflater 加载的Activity布局。而这时设置的绝对宽高是有效的。是因为在setContentView()的时候,系统会默认在外面包一层FrameLayout。郭霖还用log把当前Activity布局的父布局打印了出来。
当时看到这个心里面就很疑问,为什么要在外面默认加一层父布局呢?后来看到Android群英传,才知道,原来根本不是什么默认加了一层父布局,而是和Activity界面的架构有关。下面就先说下Activity的视图架构。
先上图:
就是这张图,Activity的UI架构图(图是网上找的)。从图中可以清楚的看出,Activity的UI结