Android窗口机制(一)认识Android的窗口结构

本文详细介绍了Android中Activity的窗口结构,包括PhoneWindow的作用及其如何通过DecorView与View系统交互,DecorView的功能及组成部分,以及ContentView的设置方法。
摘要由CSDN通过智能技术生成

窗口结构

这里写图片描述

说明

  • 每一个Activity都包含一个Window对象,Window对象通常由PhoneWindow实现

  • PhoneWindow:将Decoriew设置为整个应用窗口的根View。是Window的实现类。它是Android中的最基本的窗口系统,每个Activity 均会创建一个PhoneWindow对象,是Activity和整个View系统交互的接口。

  • DecorView:顶层视图,将要显示的具体内容呈现在PhoneWindow上.
    DecorView是当前Activity所有View的祖先,它并不会向用户呈现任何东西,它主要有如下几个功能,可能不全:

    • A. Dispatch ViewRoot分发来的key、touch、trackball等外部事件;

    • B. DecorView有一个直接的子View,我们称之为System Layout,这个View是从系统的Layout.xml中解析出的,它包含当前UI的风格,如是否带title、是否带process bar等。可以称这些属性为Window decorations。

    • C. 作为PhoneWindow与ViewRoot之间的桥梁,ViewRoot通过DecorView设置窗口属性。
      //可以这样获取 View view = getWindow().getDecorView();

    • DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。

DecorView里面TitleView:标题,可以设置requestWindowFeature(Window.FEATURE_NO_TITLE)取消掉
ContentView:是一个id为content的FrameLayout。
我们平常在Activity使用的setContentView就是设置在这里,也就是在FrameLayout上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值