在Activity类中能看到视图界面是由于Activity包含了PhoneWindow对象,PhoneWindow是每一个Activity的主窗口类,这个类的作用是管理Activity的View类的显示
以下图是通过Android Hierarchy Viewer工具截取到activity树结构视图:
每个phoneWindow对象中都有一个DecorView,它是主窗口的顶级View,是FrameLayout子类,DecorView依附在主窗口上,DecorView相当于一个视图类,里面存放了布局文件中的所有类
DecorView是FrameLayout的子类, 内部包含LinearLayout,LinearLayout包含了2个FrameLayout,其中一个FrameLayout包含了TextView 为标题(对应Activity的setTitle()方法设置的内容) 另一个FrameLayout 对应 Activity的setContentView设置的内容
以上截图是Andorid3.0之前的Activity视图结构,Android3.0以后(包括3.0)由于增加了ActionBar,视图结构有点不同了,如下是对某个Activity进行的Hierarchy Viewer截图:
红色线框区域 和 Android3.0之前的视图结构大同小异,不同之处在ActionBar所在的ViewStub,蓝色线框区域为setContentView设置的内容
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen_size);
}
对应 activity_screen_size.xml