`
兩ting
  • 浏览: 78370 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

Flex布局简介

    博客分类:
  • flex
阅读更多
★设置组件布局
对于所有的继承自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移动布局,极简公共样式包,附demo

    1. **Flex布局简介** Flex布局是CSS3的一种布局模式,它允许容器对其子元素进行更精细的控制,调整它们的大小、顺序和位置,以适应不同的设备和屏幕尺寸。这使得开发者能够轻松地创建响应式设计,无需复杂的定位...

    Flex布局让子项保持自身高度的实现

    在用了Flex布局会发现,当水平排列后,会发现所有子项的高度都变成一样的了。   这是因为Flex 布局会默认: 把所有子项变成水平排列。 默认不自动换行。 让子项与其内容等宽,并把所有子项的高度变为最高子项的...

    CSS的flex布局.ppt

    网页布局(layout)是CSS的一个重点应用。... 2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。

    flex布局布局篇

    ### Flex布局基础知识点 #### Flex布局介绍 Flex布局,全称CSS Flexible Box Layout Module,简称Flexbox,是CSS3中一种新的布局模式。这种布局模式专门用于更高效地对齐、分布和排序容器中的项目,即使它们的大小...

    Flex 布局变化时的动画效果解析 简单版

    Flex布局在Web开发中是一种非常重要的布局模式,它允许元素在容器中灵活地调整大小和位置,以适应不同屏幕尺寸和设备。在Flex布局发生变化时,例如元素的增删、大小调整或排列顺序改变,我们可能希望添加动画效果来...

    微信小程序+Flex布局示例源代码

    在这个"微信小程序+Flex布局示例源代码"中,我们将深入探讨Flex布局在微信小程序中的应用。 Flex布局,全称为Flexible Box布局,是CSS3中的一种新的布局模式,旨在解决传统盒模型在处理复杂或响应式布局时的困难。...

    Flex布局学习资料

    Flex布局,全称为“Flexible Box”,也称作柔性盒布局,是CSS3中的一种布局模式,旨在提供一种更加有效和灵活的方式来控制Web页面元素的排列和对齐方式。这种布局方式特别适合处理需要动态调整的界面,比如响应式...

    flex布局实战搭建网页页面

    在网页设计领域,Flex布局(Flexible Box Layout,也称为CSS3 Flexbox)是一种强大的工具,它使得构建响应式、动态调整的布局变得简单易行。本教程将带你深入理解Flex布局,并通过实例演示如何利用HTML和CSS搭建一个...

    flex布局分享.pptx

    Flex布局是一种现代网页和应用程序设计中的布局模式,它允许开发者更灵活地控制元素在容器内的排列方式,解决了传统布局方式(如盒模型)在处理复杂布局时的诸多不便。Flex布局于2009年由W3C提出,现在已经得到了...

    小程序源码 FlexLayout布局 (代码+截图)

    小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 Flex...

    flex布局实例DOM

    Flex布局,全称为“Flexible Box”,也称作弹性盒布局,是CSS3中的一种布局模式,旨在提供一种更加高效、灵活的方式来对网页或应用程序中的容器内的子元素进行排列、对齐和分配空间。这种布局模式在响应式设计、...

    基本布局_flex基本布局模板_flex_

    在前端开发中,Flex布局(Flexible Box)是一种强大的盒模型布局方式,允许开发者轻松地创建响应式和动态的用户界面。这个"基本布局_flex基本布局模板_flex_"项目旨在介绍和提供一个基础的Flex布局模板,帮助开发者...

    弹性布局-flex布局.zip

    **移动Web端Flex布局** Flex布局,全称为“Flexible Box”或“弹性盒布局”,是CSS3中一种用于处理容器内元素布局的模型。它旨在提供一个更加灵活、响应式的布局方式,尤其适用于多设备环境,如手机、平板电脑等...

    移动web开发实例flex布局案例源码

    在现代Web开发中,Flex布局(Flexible Box Layout)已经成为创建响应式、动态和灵活的用户界面的首选方法,尤其在移动设备上。本实例聚焦于使用Flex布局进行移动Web开发,通过具体的源码分析,我们可以深入理解并...

    携程网首页主要利用flex布局实现

    此时,Flex布局(Flexible Box布局,简称flex布局)应运而生,它提供了一种更为灵活、强大且易于控制的盒状模型布局方式。本教程将深入探讨携程网首页如何利用Flex布局实现,以及Flex布局的基本概念和使用技巧。 ...

    flex布局--顶部/底部固定

    flex布局实现顶部导航,底部导航固定,内容区内容高度超过可展示区域时出现滚动条,内容高度不足时铺满屏幕。

    携程网站 移动端 Flex布局

    携程网站 移动端 Flex布局,新人可以利用此资源来学习flex布局的应用 Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力。本文给出了 ...

    微信小程序flex布局demo

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

Global site tag (gtag.js) - Google Analytics