`
ltian
  • 浏览: 67994 次
  • 性别: Icon_minigender_1
  • 来自: 楼兰
社区版块
存档分类
最新评论

Flex布局之关于组件的大小

    博客分类:
  • Flex
阅读更多
组件的大小(size)就是指组件的高度和宽度。查看Flex帮助,可以看出关于Flex组件大小的属性有很多,以宽度为例,有以下有关宽度的属性:

  * width
  * maxWidth
  * minWidth
  * explicitWidth
  * explicitMaxWidth
  * explicitMinWidth
  * measuredWidth
  * measuredMinWidth
  * percentWidth
  * scaleX
  * 以及组件的MXML标记中的width属性。


如此之多的有关宽度的属性难免让人糊涂,而且,帮助上说的也不是很透彻,因此通过查阅相关文档和源代码,基本搞清了这些属性的含义和相互作用。这些有关宽度的属性中,基本的属性包括:

  * width
  * explicitWidth
  * measuredWidth
  * percentWidth
  * scaleX

明白这些属性之后,自然容易理解剩余的属性。

  * width,组件的当前实际宽度,以像素为单位。为什么会有当前实际宽度的这样的说法呢?因为在Flex中,能够为组件设置相对宽度,即百分比的表示宽度,这时组件当前的实际宽度是根据父容器的宽度动态决定的,开发者无法知道实际宽度的,因此通过读取width属性可以知道其当前实际宽度。

  * measuredWidth是组件的缺省宽度,以像素为单位。可以通过重载组件的measure方法来改变它的值,一般情况下,组件的measuredWidth都是0。

  * explicitWidth 是显式指定的宽度,以像素为单位。所谓显式指定宽度区别于动态的相对宽度,即区别于百分比宽度percentWidth。开发者设置该属性值时就已经知道到组件在运行时的宽度,故称为显式指定的宽度。该属性同百分比宽度互斥,一旦设置了explicitWidth,则percentWidth的值就会变为 NaN,同理,一旦设置了percentWidth,explicitWidth值就会变为NaN。当用ActionsSript代码设置了组件的 width属性值时,explicitWidth属性会立即被赋予同样的值,同时percentWidth会变为NaN。设置explicitWidth 属性时,percentWidth会立即被设置为NaN,但是width属性则不会立即改变,要延迟组件布局的commit阶段才会变为与 explicitWidth相同的值。

  * percentWidth是指组件的百分比宽度,比如设置组件占用父容器的50%的宽度,那么就设置该属性值为50。该属性同显式指定的宽度(explicitWidth)互斥,一旦设置该属性值,则explicitWidth属性立即变为NaN。

  * scaleX是当前组件宽度的缩放比例。一旦设置属性,考虑到性能,不会立即更新组件的width和explicitWidth属性,延迟到explicitWidth时会将width和explicitWidth属性值改变。


  除了以上基本属性之外,值得注意的就是组件MXML标记中的width属性。这个属性在编译组件MXML标记时,根据标记的该属性值的格式编译成设置 percentWidth或width属性的AS代码。如果组件MXML标记的width属性后面有百分号(%),则其被编译为设置 percentWidth属性的AS代码,如果组件MXML标记的width后面不带百分号(%),则其被编译为设置width属性的AS代码。
分享到:
评论
3 楼 xiao_kai 2012-06-14  
受教了,谢谢
2 楼 agao1985 2011-02-15  
高端 谢谢了
1 楼 runner1977 2009-07-02  
原来有这么多规则啊, 受教啦!!

相关推荐

    flex组件时间轴组件

    通过使用Flex布局,开发者可以轻松调整元素的大小和位置,以适应不同的屏幕尺寸和方向。 时间轴组件作为Flex布局的一个应用,它通常包含一系列的时间点或里程碑,每个时间点都与特定的事件或信息相关联。这些时间点...

    弹性布局-flex布局.zip

    在移动Web开发中,Flex布局经常用于创建导航栏、网格系统、轮播图、对话框等组件。例如,一个简单的响应式导航栏可以使用Flex布局,通过`justify-content: space-between;`使导航链接在容器中均匀分布,而在小屏幕...

    微信小程序flex布局demo

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

    flex组件

    “源码”标签暗示了这篇博客可能涉及到了Flex布局的实现原理,可能会讨论CSS的源代码片段,或者讲解如何创建自定义的Flex布局组件。理解源码对于开发者来说是提升技能的重要途径,能帮助他们更好地定制和优化布局。 ...

    flex 高级自定义组件

    Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...

    Flex4.5 UI布局与组件应用_Layout

    - **特点**:可以按行或按列排列子组件,所有单元格大小相同,通过调整`orientation`属性可以选择行布局或列布局。 - **应用场景**:适用于创建网格布局或类似相册的展示效果。 #### 五、自定义布局类 除了内置...

    Re-Flex:可调整大小的Flex布局容器组件,用于高级React Web应用程序

    Re-F | ex是我创建的基于React flex的布局组件库,因为在那里发现的所有组件都不能满足我的要求。 它旨在以简单的方式解决需要可调整大小的布局的高级React Web应用程序的需求。 这是一个基本的演示: import ...

    flex特效组件用法效果

    Flex布局是一种强大的CSS布局模式,允许我们创建响应式和灵活的用户界面。它特别适合用于现代网页和移动应用的设计,因为它可以自动调整元素的大小和位置以适应不同的屏幕尺寸。 首先,让我们理解Flex容器...

    flex组件的所有源文件

    在Web前端开发领域,Flex布局(也称为Flexbox)已经成为现代CSS布局的标准,它可以方便地处理元素的对齐、顺序和大小调整,以达到理想的效果。 在“flex组件的所有源文件”这个压缩包中,我们可以期待找到与Flex...

    Flex 自定义组件ImageViewer

    在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...

    swift-OC实现的使用“flex布局”的表格控件

    首先,Flex布局是一种现代的Web和移动应用布局模式,它允许元素在容器内自动调整大小和位置,以适应不同的屏幕尺寸和方向。这种布局方式在iOS开发中特别有用,因为它可以简化多设备适配和自适应设计的工作。 在...

    Ctrip(flex布局).zip

    在移动开发领域,Flex布局(Flexible Box Layout)已经成为创建响应式和动态布局的首选方法,尤其是在处理复杂的网页或应用界面时。"Ctrip(flex布局).zip"这个压缩包很可能是包含了一组示例代码,用于演示如何使用...

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

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

    使用Flex布局实现携程APP首页布局

    Flex布局,全称为“Flexible Box”,也称作弹性盒布局,是CSS3中的一种布局模式,主要用于解决传统盒模型在处理复杂网页布局时遇到的问题,尤其是对于响应式设计和自适应布局有着强大的支持。在携程APP首页布局中,...

    Flex 组件边框线样式

    Flex组件边框线样式是前端开发...综上所述,Flex组件边框线样式是一个多维度的设计概念,涵盖边框、标题、内容区域以及与之相关的交互反馈和响应式设计。熟练掌握这些技巧,可以让你创建出既美观又功能强大的Flex应用。

    Flex文件上传的组件

    Flex文件上传组件是一种基于Adobe Flex技术的用户界面组件,它允许用户在Web应用程序中选择并上传文件。在Flex中,这种组件通常会显示一个文件选择对话框,让用户选择要上传的文件,并且会提供一个进度条来显示上传...

    flex布局代码及语法讲解

    Flex布局常用于导航栏、页脚、卡片式布局、网格系统、复杂组件等场景。对于初学者来说,理解并熟练运用Flex布局,可以极大地提升网页设计和开发的效率,使页面布局更加灵活多变,适应不同设备和屏幕尺寸的需求。 ...

    移动端web开发flex布局案例

    Flex布局允许容器对子元素进行灵活的调整,以适应不同大小的屏幕。它解决了传统布局(如浮动和定位)在处理动态内容或多列布局时的局限性。Flex布局由容器(flex container)和项目(flex item)组成,通过设置容器...

Global site tag (gtag.js) - Google Analytics