赖勇浩(
http://laiyonghao.com
)
国庆期间,做了不少基于
flex
的开发工作,对
flex
的布局容器有了进一步深入的理解,也找到不少非常棒的文章,分享到这里方便一下大家。
很好的文章
Flex3
界面布局教程
(1)
http://blog.chinaunix.net/u/21684/showart_691988.html
Flex3
界面布局教程
(2)
http://blog.chinaunix.net/u/21684/showart_692022.html
Flex
组件的定位和布局
http://www.adobe.com/cn/devnet/flex/quickstart/layout_modes/
Using Layout Containers
http://livedocs.adobe.com/flex/3/html/help.html?content=layouts_07.html
基本上看完前三篇,这方面就能搞得很好了;最后一篇是官方的关于布局容易的手册,有空的时候看看,可以了解更多细节。下面开始分享我的学习笔记(有润色),内容没有脱离上面的四篇文章,没兴趣的朋友可以跳过不看了。
定位模式
要想弄明白
flex
的界面布局,就有必要先弄明白它的定位模式。
flex
的自由之处在于你可以在
mxml
里写上许多定位模式的代码,当这些定属性发生冲突时,它会自动根据优先级来执行优先级最高的定属性。你不用担心记不住这些优先级,
flex
这个
IDE
在检测到冲突时,会在
problem
框里显示一个警告,这样你可以去掉优先级比较低的定位属性了。
众多的定位模式中第一个是绝对模式,即你通过确定的数值来设定
x
、
y
、
width
和
height
属
性;使用绝对模式你需要知道你的控件摆在哪个位置和确定它的大小,显然地这很难让你的客户方便地获得适应客户屏幕和习惯的布局,所以我们更常用的是自动定
位;自动定位仍然不够灵活,这时我们可以使用基于约束的布局,顾名思义,这是一种通过描述其与容器的关系来实现布局的方法,通过使用子组件的
top
、
bottom
、
left
、
right
、
horizontalCenter
或
verticalCenter
样式属性来指定限制。关于这方面的更多内容,可以通过上面推荐的第三篇文章来了解。
HBox
、VBox
和 Spacer
这两个
Box
类是“看不见”的控件,用来约束其中的组件布局。如果你用过
wxWidgets
那一定对它们相当熟悉了,这种基于
Box
的布局方法加上约束属性,可以很容易地做出随着父控件的大小变化而相应地保持比例的变化,唉啊,想起当年用
MFC
实现这样的效果,我写了多少代码,调试了多少个夜晚啊!
在
Box
控件中,某两个控件之间的距离由
verticalGap
属性设定,默认值并不是
0
,所以如果你想把两个控件紧挨在一起,需要手动把它设置为
0
;如果你想单独地调整某两个控件间的间隔,那么可以使用“看不见的看得见的”控件
Spacer
来隔开它,
Spacer
在界面上显示为一个纯透明的组件,所以看不见,但又能起到空白的作用,所以又看得见,它的
width
和
height
属性可以相对应地让
HBox
和
VBox
控制的组件更加漂亮。
ApplicationControlBar
如果你用
Win32 SDK
或
MFC
界面编程的经历,你一定为“在工具栏上加一个
ComboBox
或
Edit
的需求”而抓狂过吧?现在不用怕了,来到
flex
的世界,像这种问题,用
ApplicationControlBar
是相当相当地小
case
。看看下面这个图多复杂,用了它,就是一个
1 + 1 = 2
的小
case
了。
DividedBox
、HDividedBox
和 VDividedBox
别说是用
MFC
,哪怕是用
wxWidgets
,做一个可以随时拖放改变切分比例的分割组件也是困难的,但到了
Flex
的时代,一切都变得非常容易了,使用
DividedBox
及其子类可以像使用
Box
及其子类那样方便地分割组件,下面就是一个活生生的例子,拖动中间的分隔条,可以随时改变大小比例。
除了这些以外,还有最常用的容器
Canvas
、
ApplicationControlBar
的基类
ControlBar
、很有
web
特色的
Form, FormHeading, and FormItem
、与
Box
类似的
Grid
、以及
Panel
、
Tile
和
TitleWindow
,这些类都可以在手册里看到,还是那句话:有空的时候,
read the fucking manuals
;工作的时候,
google is your friend
。
分享到:
相关推荐
国庆期间,做了不少基于 flex 的开发工作,对 flex 的布局容器有了进一步深入的理解,也找到不少非常棒的文章,分享到这里方便一下大家。
本学习笔记将深入探讨CSS在网页布局中的应用,帮助读者掌握如何利用CSS创建美观且响应式的网页。 一、CSS基础 在了解网页布局之前,我们需要熟悉CSS的基本语法和选择器。CSS通过选择器来指定要应用样式的HTML元素,...
7. **布局管理器**:Flex提供了多种布局管理器,如垂直布局、水平布局、网格布局等,用于控制组件在容器中的排列方式,确保UI在不同屏幕尺寸下都能正确显示。 8. **事件模型**:Flex的事件模型是基于发布-订阅模式...
Flex学习笔记1 - 容器布局对象状态的切换和数据绑定 在 Flex 应用程序中,容器布局对象状态的切换是非常常见的需求。例如,在购物车应用程序中,我们可能需要在不同的状态之间切换,例如从商品浏览状态到购物车状态...
### Flex4.5学习笔记知识点总结 #### 一、Flex基础——布局 **知识点1:Flex布局** - **垂直布局** (`s:VerticalLayout`): 控件垂直排列。 - **水平布局** (`s:HorizontalLayout`): 控件水平排列。 - **平铺布局**...
### Flex 学习笔记知识点详解 ...以上总结了 Flex3 学习笔记中的关键知识点,涵盖从基础概念到高级应用的各个方面。通过系统学习这些内容,可以帮助开发者全面掌握 Flex 技术,并能够运用其构建高质量的 RIA 应用程序。
Flex布局,全称为Flexible Box,是CSS3引入的一种布局模型,专为了解决复杂的网页布局问题,特别是在响应式设计中。本笔记将深入探讨flex布局中的一些关键属性及其应用场景。 一、`display`属性 Flex布局的开启始于...
flex布局实现需要至少两层控件,外层叫做容器,内部的叫做项目(item).类似于Android里的ViewGroup和里面装的View。 容器分两个轴,水平的主轴(main axis)和竖直方向的交叉轴(cross axis),就相当于盒子模型中的xy轴,...
Flex布局模型是指在容器中排列项目的方式。默认情况下,flex布局模型将项目排列在水平方向上。然而,我们可以通过更改flex-direction属性来改变项目的排列方向。 Flex布局模型中有两个主要的轴:主轴和侧轴。主轴是...
### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...
**CSS3学习笔记** 在网页设计领域,CSS(层叠样式表)是用于定义HTML或XML(包括SVG、XHTML等)文档呈现的关键技术。随着技术的不断发展,CSS3已经成为了现代网页设计的标准,提供了丰富的样式控制和布局能力。本...
### ExtJS4学习笔记知识点总结 #### 1. ExtJS4组件创建方式的更新 在ExtJS4版本中,创建Ext组件的方式有所更新。引入了`Ext.create`方法,这是一种更灵活的组件创建方式。`Ext.create`允许开发者动态加载组件所需...
通过本篇手写版CSS学习笔记,我们深入了解了CSS的基础知识、核心布局技术(如Flexbox和Grid)、响应式设计、动画效果以及常用的CSS框架和工具。无论你是初学者还是有一定经验的开发者,都能从中获得宝贵的知识和技巧...
在提供的压缩包文件中,"前端学习笔记:实现一个盒子水平居中"可能包含了更多关于这个主题的实例和详细解释。通过阅读和分析这些笔记,你可以更深入地理解这些方法,并可能发现其他实用的技巧。
### 高仿饿了么/vue2.0学习笔记 #### Vue2.0核心知识点与实践技巧 **一、概述** 本文档旨在分享“高仿饿了么”项目的Vue2.0学习过程中的经验和技巧,特别关注于那些在使用Vue1.0教程时遇到的问题以及解决方案。...
### ExtJS 学习笔记概览 #### 一、ExtJS 入门 **1.1 ExtJS 构成及如何引用** ExtJS 是一款基于 JavaScript 的开源框架,专为 Web 应用程序的前端界面设计。其核心优势在于提供了一套丰富的 UI 组件和强大的数据...
在CSS样式的学习中,定位(Positioning)是一个关键的概念,它允许我们精确地控制元素在网页上的布局。本文将深入探讨CSS定位机制,包括static、relative、absolute、fixed以及flex和grid布局中的定位规则。 首先,...
在现代网页设计中,CSS3已经成为了不可或缺的一部分,它...总的来说,这个资源包提供了一个利用CSS3和jQuery实现自适应图片布局和特效的实例,对于开发者来说,无论是学习还是实际项目开发,都是非常有价值的参考资料。