我AttachInfo 的来源
2024-01-27 01:47:31
mAttachInfo 的来源
mAttachInfo 是 View 的一个内部类,它存储有关视图及其附加到窗口的信息。
mAttachInfo 被赋值的时机:
-
视图附加到窗口时: 当一个视图被附加到窗口时,系统会为该视图创建并赋值一个 mAttachInfo 对象。该对象将包含视图的附加信息,例如窗口令牌、装饰视图和可视性。
-
视图树更改时: 当视图树发生更改时,例如视图被添加、删除或重新排列,mAttachInfo 也会被更新以反映这些更改。这是因为 mAttachInfo 跟踪视图在屏幕上的位置和状态。
mAttachInfo 的来源
mAttachInfo 的值来自以下来源:
-
Window Manager(窗口管理器): 当视图附加到窗口时,窗口管理器将创建并赋值 mAttachInfo。它提供有关窗口的信息,例如窗口令牌和装饰视图。
-
View Root Impl(视图根实现): 视图根实现负责管理视图树。当视图树发生更改时,它将更新 mAttachInfo 以反映这些更改。它提供有关视图位置和状态的信息。
-
视图自身: 视图也可以更新其 mAttachInfo。例如,当视图的可见性发生更改时,它将更新 mAttachInfo 以反映其新的可见状态。
封装专项元素
专业级别的文章
mAttachInfo 的来源
mAttachInfo 是 View 的一个内部类,它存储有关视图及其附加到窗口的信息。mAttachInfo 的来源取决于视图附加到窗口的时机和视图树更改的时机。
mAttachInfo 的赋值时机
当视图附加到窗口时,系统会为该视图创建并赋值一个 mAttachInfo 对象。该对象将包含视图的附加信息,例如窗口令牌、装饰视图和可视性。
当视图树发生更改时,例如视图被添加、删除或重新排列,mAttachInfo 也会被更新以反映这些更改。这是因为 mAttachInfo 跟踪视图在屏幕上的位置和状态。
mAttachInfo 的来源
mAttachInfo 的值来自以下来源:
-
窗口管理器: 当视图附加到窗口时,窗口管理器将创建并赋值 mAttachInfo。它提供有关窗口的信息,例如窗口令牌和装饰视图。
-
视图根实现: 视图根实现负责管理视图树。当视图树发生更改时,它将更新 mAttachInfo 以反映这些更改。它提供有关视图位置和状态的信息。
-
视图自身: 视图也可以更新其 mAttachInfo。例如,当视图的可见性发生更改时,它将更新 mAttachInfo 以反映其新的可见状态。
示例
假设我们有一个名为 myView 的自定义视图。当 myView 附加到窗口时,系统将创建并赋值一个 mAttachInfo 对象。该对象将包含有关 myView 窗口的信息,例如窗口令牌和装饰视图。
如果我们随后将 myView 添加到另一个窗口,mAttachInfo 将被更新以反映新的窗口信息。此外,如果 myView 的可见性发生更改,mAttachInfo 也将被更新以反映其新的可见状态。