`

UIComponentGlobals 获取布局管理器,使全局布局立即生效

 
阅读更多

 

UIComponentGlobals.mx_internal::layoutManager.validateNow();

 

原理如下:

 

在flex中,主要使用LayoutManager来驱动组件的度量和布局策略, LayoutManager实现一个单例,在Application类构造函数中创建: 

 

public function Application()
     {
         UIComponentGlobals.layoutManager = ILayoutManager(
             Singleton.getInstance("mx.managers::ILayoutManager"));
         UIComponentGlobals.layoutManager.usePhasedInstantiation = true;
 
         if (!FlexGlobals.topLevelApplication)
             FlexGlobals.topLevelApplication = this;
 
         super();
                     
         showInAutomationHierarchy = true;
     }
 

布局分三个阶段执行:提交、度量和布局。

那作为一个组件,是怎么样 参与到布局策略中呢?
flex中所有的组件都继承自UIComponent类,在该类上实现了一个叫IInvalidating的接口:

 

public interface IInvalidating
{

    function invalidateProperties():void;
    function invalidateSize():void;
    function invalidateDisplayList():void;

        function validateNow():void;
}
 

当组件调用invalidateProperties方法,表明该组件一个属性发生变化,需要更新.
它会在方法体写上这么一句:
   UIComponentGlobals.layoutManager.invalidateProperties(this);
来告诉布局管理器(LayoutManager),布局管理器在适当的时候回调组件上的validateProperties()验证属性,
如果有属性有变化,进而再调用commitProperties()提交变化的属性.

同理,
调用invalidateSize()告诉布局管理器组件大小发生了变化.
调用invalidateDisplayList()告诉布局管理器组件布局发生了变化.

分享到:
评论

相关推荐

    3.多界面跳转,界面传递参数,布局管理器

    当我们谈论“多界面跳转,界面传递参数,布局管理器”时,这是针对GUI(图形用户界面)应用程序开发的一个核心主题,特别是在Qt框架下。Qt是一个流行的开源C++库,用于创建跨平台的桌面和移动应用。 **多界面跳转**...

    SAP 特定用户布局

    通过以上步骤,你可以实现 SAP 系统中特定用户布局的默认设置,同时避免用户随意更改全局变式,影响其他人的报表视图。这种优化的布局管理策略有助于提高团队协作效率,确保每个用户的报表体验个性化且不会互相干扰...

    android全局事件监听器

    4. **Application类**:扩展自定义的Application类,可以在其生命周期内注册和管理全局监听器,确保在整个应用生命周期内都能生效。 **EventBus**:标签提到了EventBus,这是一个流行的消息总线库,用于简化Android...

    强大的C#钩子。全局钩子,获取输入值。键盘值已处理

    ### 强大的C#钩子:全局钩子,获取输入值——键盘值处理 #### 概述 在本文中,我们将深入探讨一个基于C#语言的全局键盘钩子的应用示例,该应用能够捕获系统范围内的键盘输入,并对特定问题(如ASCII码与实际按键值...

    java-鼠标坐标获取器(全局坐标)

    java编写的可以获取全局鼠标坐标的一个小工具

    sentinel-global-flow全局流控管理

    5. **事件监听与回调**:在规则发生变化时,客户端需要有相应的监听器,以便在规则更新后立即执行相应的逻辑,比如刷新缓存或重置统计状态。 在 `sentinel-core.zip` 和 `sentinel-extension.zip` 文件中,包含了 ...

    android 统一管理布局文件

    "android 统一管理布局文件"是一个最佳实践,旨在提高代码可读性、可维护性和团队协作效率。本文将深入探讨如何实现这一目标,并通过分析`demo`示例来阐述相关知识点。 首先,统一布局管理的基本原则是模块化和复用...

    全局获取Activity对象

    通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种...

    后台菜单布局

    这种布局方式常见于后台管理系统,通常在页面顶部放置全局导航,方便用户快速定位和切换功能。同时,顶部布局也可以包括其他元素,如logo、搜索框、用户信息和操作按钮等,形成一个完整的头部区域。 总之,“后台...

    逆向dll中的函数及通过函数api钩子获取dll中的全局或是const变量值

    逆向dll中的函数及通过函数api钩子获取dll中的全局或是const变量值

    Android-RecyclerView二次封装Adapter支持添加头布局尾部局空布局

    - RecyclerView支持多种布局管理器,如LinearLayoutManager(线性布局)、GridLayoutManager(网格布局)以及StaggeredGridLayoutManager(瀑布流布局)。本项目特别提到支持GridLayoutManager和...

    全局键盘钩子获取扫描枪输入

    全局键盘钩子是Windows操作系统提供的一种机制,允许应用程序在系统层面捕获键盘事件,即使焦点不在该应用程序上。这种技术通常用于实现系统级的键盘监控、热键设置或特定输入处理,例如本例中的扫描枪输入识别。 ...

    采用遗传算法和模拟退火算法解决VLSI中的布局优化问题

    通过交叉、变异和选择操作,GA能够逐步改进布局,使其向最优解靠近。 遗传算法的基本步骤包括: 1. 初始化种群:随机生成一组初始布局配置。 2. 适应度评价:根据特定的目标函数(如面积、功耗等)评估每个布局配置...

    新浪微博布局文件

    【标题】:“新浪微博布局文件”指的是在Android应用开发中,微博客户端使用的用户界面(UI)设计文件。这些文件通常以XML格式存储,用于定义屏幕上的各个组件及其布局方式,包括按钮、文本框、图片等元素的位置和...

    FPGA全局时钟资源相关原语及使用

    BUFGCE(时钟使能全局缓冲器)与BUFG类似,但它具有一个时钟使能端(CE),只有当使能端有效时,BUFGCE才会有输出。BUFGMUX(全局时钟选择缓冲器)有两个输入端和一个控制端,根据控制信号选择其中一个输入端信号...

    android 布局别名的应用

    在Android开发中,布局别名(Layout Aliases)是一种实用的技术,它可以帮助开发者更高效地管理应用程序的界面布局,尤其是在处理屏幕适配问题时。本文将深入探讨布局别名的概念、用途以及如何在实际项目中应用。 #...

    如何退出CAD布局的视口.pdf

    9. 在视口中控制图层可见性,通过图层特性管理器在当前视口冻结不需要打印的图层。 布局中的一些特殊控制技巧包括: 1. 使用UCS(用户坐标系统)可以旋转视图,例如通过新建UCS并指定三个点来改变坐标轴方向,然后...

    Android 自定义全局Loading页面

    要将其用作全局Loading页面,你需要在布局文件中添加一个ProgressBar,并在需要显示加载状态时调用它的`setVisibility(View.VISIBLE)`方法,当加载完成时则调用`setVisibility(View.GONE)`。然而,ProgressBar默认的...

    微信小程序项目-侧滑布局

    在编写代码时,应遵循良好的编码规范,如合理使用CSS预处理器(如Less或Sass),将样式模块化,避免全局样式污染,以及合理运用CSS选择器以降低渲染开销。同时,理解并熟练运用CSS的盒模型、定位和浮动等概念,能...

    c++ hook 全局钩子 全局键盘钩子

    全局钩子是Windows编程中的一种技术,用于在系统级别监控特定事件,如键盘输入或鼠标动作。在C++中实现全局钩子,主要是通过Windows API函数来完成的,特别是`SetWindowsHookEx`函数。这篇内容将深入探讨C++如何实现...

Global site tag (gtag.js) - Google Analytics