`
matt.u
  • 浏览: 129890 次
  • 性别: Icon_minigender_1
  • 来自: CQ
社区版块
存档分类
最新评论

Flex组件布局

    博客分类:
  • Flex
阅读更多
引用自http://xinsync.xju.edu.cn/index.php/archives/1937

★设置组件布局

对于所有的继承自UIComponent的组件包括Flex标准组件(Controls和Containers),我们都可以在标签内或者在AS中动态地设置它们的width和height属性。很多Controls和Containers我们都支持默认大小。对于Containers容器,我们又可以设置它的一系列布局属性properties和风格styles,它们主要包括利用verticalAlign,horizontalAlign设置容器内子组件的对齐方式;利用容器内相对坐标x,y设置子组件在容器内的相对位置;利用paddingBottom,paddingTop,paddingRight,paddingLeft属性设置上下左右边框空白;verticalGap和horizontalGap属性设置容器内子对象间隔;利用horizontalScrollPolicy和verticalScrollPolicy属性设置当容器内子组件大小超过当前容器时是否允许滑动条出现等等。这些都是Flex Containers容器的共性。所有的Flex容器类都继承自mx.core.Container类,这个类定义和实现了以上提到的和容器布局相关的这些属性。
另外Flex通过两种方式定义Controls组件在父容器的的位置和布局。一个是自动布局,Flex根据当前父容器的默认方式布局设置其子组件的布局和位置,如VBox会在容器内垂直地布局所有的子组件,而HBox则水平地布局子组件;另一种方式是绝对布局,利用子组件相对当前父容器的坐标x和y属性以绝对位置的方式定义组件的布局位置。
在所有Flex可视化组件库中共有三种容器支持绝对布局方式。Application,Panel默认使用自动布局方式,开发者可以设置其layout属性为absolute,将布局方式设置为绝对布局。第三个容器组件是Canvas,允许绝对布局。

★Flex组件布局过程

LayoutManager类是Flex的一个后台布局管理器。开发者基本上不必直接操作这个类。它主要负责运行时以实时侦听的方式解析布局应用组件的大小,风格和位置。逻辑上布局过程可分为三个阶段(提交commitment,检测measurement和实施layout).其中每个过程都是以上一个过程的完成为基础。

● 提交阶段Commitment
这个过程LayoutManager触发待布局组件树中各个组件的commitProperties()方法用来确定与组件布局相关的属性变化。然后以相同的方式call每个组件的validateProperties()方法遍历属性列表。commitProperties()方法定义在每个容器类Container中。validateProperties()方法则声明在ILayoutManagerClient接口中,而UIComponent可视化基类实现了ILayoutManagerClient 接口,这就是每个我们自定义的容器类或者标准容器类可以在机制上实现精确布局的理论基础。

● 检测阶段Measurement
这个过程LayoutManager触发每个组件的measureSizes()内置方法检测应用中每个组件的默认大小。检测遍历从底层嵌套最深的组件开始一直到最外层的容器。

● 实施阶段Layout
这个过程中LayoutManager触发每个组件的updateDisplayList()方法用来最终布局组件树结构,包括组件的大小多少和位置等。布局顺序从最外层的容器一直到最底层的容器。
从另一个角度来描述,从Mxml标签嵌套最底层的Controls组件到最外层的Application组件,Flex依次检测以显式方式设置的组件绝对长度和宽度。这个过程在检测阶段完成。检测阶段完成后,进入实施阶段,Flex从最外层的容器到最底层的内嵌组件,依次确定以百分比方式设置的width和height等组件属性。第三步Flex检测和确定以设置minWidth, minHeight, maxWidth,maxHeight等属性决定大小的组件的实际长度和宽度。

★组件大小

在Flex组件布局的检测和实施阶段,LayoutManager会根据组件的width和height属性描绘组件大小。在flex的实现中组件大小的设置可以有三种方式。
(I) 默认大小:没有显式的设置长宽时,系统自动确定组件的默认大小。
(II) 绝对大小:显式的设置组件的长度和宽度
(III) 百分比大小:参考当前组件的父容器,利用百分比设置组件大小
(IV) 间接限制大小:通过设置相对父容器边框距离和中心点位置确定组件大小的方式。
应用中你会发现在Flex 组件中有若干属性可以设置组件的大小。对于这一部分的掌握将有助于你对Flex组件机制的理解。如果你没有用自定义的组件,你可以用下面介绍的方式来设置组件的大小属性。

● 在MXML标签和ActionScript中可以直接设置每个组件的width,height,percentWidth,percentHeight属性初始化大小。

● 在MXML标签中或者ActionScript中设置每个组件的minWidth,minHeight,maxWidth,maxHeight属性设置当前组件可以拥有的最大最小长度和宽度。但是如果你已经显式地设置了当前组件的绝对长度和宽度width和height,那么这种设置方式将没有效果。
分享到:
评论

相关推荐

    Flex 组件Flex 组件Flex 组件

    Flex组件的布局管理是其一大特色。通过使用不同的布局管理器,如垂直布局、水平布局、网格布局或绝对布局,开发者可以控制组件在容器中的排列方式。这使得在不同屏幕尺寸和设备上创建响应式布局成为可能。 Flex组件...

    flex组件时间轴组件

    综上所述,Flex组件时间轴是一个结合了Flex布局灵活性和时间序列信息展示的高效工具。通过掌握Flex布局原理和实践,开发者可以创建出功能强大且用户体验良好的时间轴组件,满足不同应用场景的需求。在实际开发中,...

    flex组件详细介绍

    在提供的文档"flex组件详细介绍.doc"中,应包含更多关于Flex布局组件的实际应用,如导航栏、卡片式布局、网格系统等,每个组件都配有示例代码和对应的效果图,让你能够直观理解并立即应用。 通过深入理解Flex布局,...

    flex组件

    标题中的“flex组件”指的是在前端开发中广泛使用的Flex布局技术。Flex布局,全称Flexible Box,是一种用于处理容器中子元素布局的CSS3模块。它允许开发者在不同尺寸的设备上灵活地调整元素的大小和位置,尤其适用于...

    flex组件介绍

    ### Flex组件介绍与详解 Flex是一种用于开发交互式应用程序的开源框架,由Adobe Systems创建,主要应用于Adobe Flash Player和Adobe AIR。Flex提供了丰富的用户界面组件库,这些组件可以帮助开发者快速构建高质量的...

    Flex布局之关于组件的大小

    这是最基本的属性,用来设置或获取Flex组件的宽度。它可以直接赋值为一个具体的像素值、百分比或者其他单位。 #### 2. *maxWidth 和 *minWidth 这两个属性分别限制了Flex组件的最大和最小宽度。当组件的宽度受到...

    Flex 组件边框线样式

    Flex组件边框线样式是前端开发中的一种设计技术,它主要应用于创建具有清晰边框的UI元素,使得用户界面更加美观且易于理解。在Flex框架中,边框线的样式可以自定义,以满足不同场景下的设计需求。下面将详细讨论Flex...

    flex 页面布局教程

    flex 页面布局教程 详细介绍了页面的各个组件

    flex组件的所有源文件

    Flex组件是一种广泛应用于Web开发中的布局工具,尤其在创建响应式设计时,它能帮助开发者构建灵活、可自适应不同屏幕尺寸的用户界面。在Web前端开发领域,Flex布局(也称为Flexbox)已经成为现代CSS布局的标准,它...

    flex 不错的教程

    3. 布局(Layout):Flex组件布局阶段,此时会触发布局相关事件,如validateProperties、updateDisplayList等。 4. 重绘(Redraw):组件或其子组件的外观发生变化时,会触发重绘事件,Flex重新绘制组件。 5. 卸载...

    flex组件,功能强大的下拉框

    Flex组件是一种广泛应用于前端开发中的布局工具,尤其在构建响应式和可自适应的用户界面时,它能提供强大的灵活性。在本项目中,我们关注的是一个特定的Flex组件——"功能强大的下拉框"。这个自编的Flex下拉框组件...

    Flex中利用IFrame解决嵌入HTML时Flex组件被遮挡和IFrame被隐藏的问题

    解决这个问题的关键在于调整Z-index,即设置IFrame和Flex组件的层级关系。在Flex中,可以为每个组件设置`includeInLayout`属性和`zIndex`属性来控制它们在堆叠顺序中的位置。确保菜单组件的`zIndex`值高于IFrame,使...

    【完美翻译】Flex组件的生命周期

    Flex组件的生命周期是Adobe Flex框架中一个至关重要的概念,它涉及到UIComponent类及其子类(如Button、Canvas等)在创建、初始化、显示和销毁过程中的各个阶段。深入理解组件生命周期有助于开发者更有效地管理组件...

    Flex的组件

    在本文中,我们将深入探讨Flex组件系统,包括其核心概念、组件的使用以及AllMenu.mxml文件可能涉及的内容。 Flex组件是构建用户界面的基本元素,它们是预定义的、可重用的代码单元,可以显示文本、图像、按钮、滑块...

    《Flex完全自学手册》源码+电子教案(PPT)

    通过PPT,学习者可以快速回顾关键知识点,并通过视觉方式加深对Flex组件布局、MXML与ActionScript混合编程等核心概念的理解。 学习Flex的几个重要知识点: 1. **MXML**:这是Flex的主要标记语言,用于描述用户界面...

    flex 重写组件

    #### 一、为何需要重写Flex组件? 在Flex开发过程中,经常遇到已有的组件无法完全满足项目需求的情况。这些需求可能包括但不限于改变组件的外观、增加新的功能特性或者实现更复杂的交互逻辑。在这种背景下,重写...

    第五章 自定义组件开发 第一节 自定义Flex组件

    在本节中,我们将深入探讨Flex组件开发,这是ActionScript 3.0和Flex框架中的一个重要组成部分。Flex组件是构建富互联网应用程序(RIA)的基础,它们允许开发者创建可复用、可定制的用户界面元素。自定义Flex组件是...

    微信小程序flex布局demo

    在微信小程序中,开发者可以利用CSS布局方式之一的Flex布局来实现复杂的页面设计,提高用户体验。本教程将深入探讨微信小程序中的Flex布局。 一、Flex布局基础 1. Flex容器:在CSS中,一个元素如果设置了`display:...

    支持手动拖拽缩放flex组件的组件

    在给定的标题“支持手动拖拽缩放flex组件的组件”中,我们可以推断出这是一个专门针对Flex环境设计的组件,它允许用户通过手动拖拽和缩放操作来调整Flex应用中的组件大小。 描述中提到的“com.janisRadins.zip”很...

Global site tag (gtag.js) - Google Analytics