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()告诉布局管理器组件布局发生了变化.
分享到:
相关推荐
当我们谈论“多界面跳转,界面传递参数,布局管理器”时,这是针对GUI(图形用户界面)应用程序开发的一个核心主题,特别是在Qt框架下。Qt是一个流行的开源C++库,用于创建跨平台的桌面和移动应用。 **多界面跳转**...
在C#编程中,获取全局鼠标坐标是一项常见的需求,特别是在开发需要实时监控鼠标位置的应用时。全局鼠标坐标指的是鼠标在操作系统屏幕上的精确位置,不受任何特定窗口或应用程序限制。下面我们将详细探讨如何在C#中...
通过以上步骤,你可以实现 SAP 系统中特定用户布局的默认设置,同时避免用户随意更改全局变式,影响其他人的报表视图。这种优化的布局管理策略有助于提高团队协作效率,确保每个用户的报表体验个性化且不会互相干扰...
4. **Application类**:扩展自定义的Application类,可以在其生命周期内注册和管理全局监听器,确保在整个应用生命周期内都能生效。 **EventBus**:标签提到了EventBus,这是一个流行的消息总线库,用于简化Android...
### 强大的C#钩子:全局钩子,获取输入值——键盘值处理 #### 概述 在本文中,我们将深入探讨一个基于C#语言的全局键盘钩子的应用示例,该应用能够捕获系统范围内的键盘输入,并对特定问题(如ASCII码与实际按键值...
java编写的可以获取全局鼠标坐标的一个小工具
5. **事件监听与回调**:在规则发生变化时,客户端需要有相应的监听器,以便在规则更新后立即执行相应的逻辑,比如刷新缓存或重置统计状态。 在 `sentinel-core.zip` 和 `sentinel-extension.zip` 文件中,包含了 ...
"android 统一管理布局文件"是一个最佳实践,旨在提高代码可读性、可维护性和团队协作效率。本文将深入探讨如何实现这一目标,并通过分析`demo`示例来阐述相关知识点。 首先,统一布局管理的基本原则是模块化和复用...
通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种...
逆向dll中的函数及通过函数api钩子获取dll中的全局或是const变量值
这种布局方式常见于后台管理系统,通常在页面顶部放置全局导航,方便用户快速定位和切换功能。同时,顶部布局也可以包括其他元素,如logo、搜索框、用户信息和操作按钮等,形成一个完整的头部区域。 总之,“后台...
- RecyclerView支持多种布局管理器,如LinearLayoutManager(线性布局)、GridLayoutManager(网格布局)以及StaggeredGridLayoutManager(瀑布流布局)。本项目特别提到支持GridLayoutManager和...
全局键盘钩子是Windows操作系统提供的一种机制,允许应用程序在系统层面捕获键盘事件,即使焦点不在该应用程序上。这种技术通常用于实现系统级的键盘监控、热键设置或特定输入处理,例如本例中的扫描枪输入识别。 ...
通过交叉、变异和选择操作,GA能够逐步改进布局,使其向最优解靠近。 遗传算法的基本步骤包括: 1. 初始化种群:随机生成一组初始布局配置。 2. 适应度评价:根据特定的目标函数(如面积、功耗等)评估每个布局配置...
DocLayout-YOLO通过多样化合成数据和全局到局部自适应感知增强文档布局分析English |简体中文DocLayout-YOLO通过多样化合成数据和全局到局部自适应感知增强文档布局分析DocLayout-YOLO的官方 PyTorch 实现。...
BUFGCE(时钟使能全局缓冲器)与BUFG类似,但它具有一个时钟使能端(CE),只有当使能端有效时,BUFGCE才会有输出。BUFGMUX(全局时钟选择缓冲器)有两个输入端和一个控制端,根据控制信号选择其中一个输入端信号...
【标题】:“新浪微博布局文件”指的是在Android应用开发中,微博客户端使用的用户界面(UI)设计文件。这些文件通常以XML格式存储,用于定义屏幕上的各个组件及其布局方式,包括按钮、文本框、图片等元素的位置和...
在Android开发中,布局别名(Layout Aliases)是一种实用的技术,它可以帮助开发者更高效地管理应用程序的界面布局,尤其是在处理屏幕适配问题时。本文将深入探讨布局别名的概念、用途以及如何在实际项目中应用。 #...
通过图层特性管理器控制视口中各图层的可见性,避免打印出不需要的图层;调整视口线是否打印,可以通过隐藏图层或设置颜色为255(无色)来实现。此外,Psltscale变量的使用允许用户在全局比例和视口比例间选择线型...
要将其用作全局Loading页面,你需要在布局文件中添加一个ProgressBar,并在需要显示加载状态时调用它的`setVisibility(View.VISIBLE)`方法,当加载完成时则调用`setVisibility(View.GONE)`。然而,ProgressBar默认的...