为日后维护的简单话将使用flex提供的绝对约束布局来实现
页面主页面的样式布局
绝对约束布局的demo在svn(svn:..);
绝对约束布局解释说明:
绝对约束布局的好处
1. 绝对布局是flex提供的一种布局方式,绝对布局依然使用像素x y 的方式来进行
组件的布局,但是比原始的绝对布局更加容易维护。
2. 绝对约束布局构造组件布局的效率较高,使用这种方式要比组件嵌套组件的cup
性能高出很多,也是adobe推荐使用的方式。
3. 可以做到屏幕自适应。
绝对约束布局的简单描述:
1. 使用绝对约束布局和绝对布局一样,必须在布局容器中支持绝对布局, 如果是
Application 这样的既支持绝对布局又支持其他布局凡是的容器,先要设置其layout属性:
layout="absolute"
2. 在容器的根下使用flex提供的两个元素constraintRows 和 constraintColumns
使用的页面样例如下:
<mx:constraintRows>
<mx:ConstraintRow id="hero_panel_row" height="200"/>
<mx:ConstraintRow id="main_padding_row" height="100%"/>
<mx:ConstraintRow id="bottom_panel_row" height="200"/>
</mx:constraintRows>
<mx:constraintColumns>
<mx:ConstraintColumn id="hero_panel_col" width="200"/>
<mx:ConstraintColumn id="main_padding_left_col" width="200"/>
<mx:ConstraintColumn id="main_col" width="0"/>
<mx:ConstraintColumn id="main_padding_right_col" width="100%"/>
<mx:ConstraintColumn id="map_panel_col" width="145"/>
</mx:constraintColumns>
以上的代码用自然语言的描述是这样的:
我们在一个类似于canvas的绝对布局容器画行和列。constraintRows 表示画一种行。
子元素表示每一行(ConstraintRow) 这是第一行,高度为200:
<mx:ConstraintRow id="hero_panel_row" height="200"/>
这是第二行,高度为100% <----这里注意.
<mx:ConstraintRow id="main_padding_row" height="100%"/>
然后是第三行,高度是200
<mx:ConstraintRow id="bottom_panel_row" height="200"/>
重点指出一下,我们把第一行和第三行的高度已经是按照像素的方式指定的很明确。
无论容器的高度怎么改变,第一 、三行的高度都是固定的,200px。而第二行的
高度是不固定的,他会根据容器的当前高度进行自动计算。假设:如果一个容器的
高度是800, 那么,除去第1 ,3 行的400 , 第二行的高度就是400, 而如果
容器的高度是600,那第二行的高度就变成200 了。 这种绝对约束布局总是先算
给定好的绝对像素值,然后才按照百分比来计算其他的位置高度。
以同样的方式来画布局容器中的列,意思不再赘述。
<mx:constraintColumns>
<mx:ConstraintColumn id="hero_panel_col" width="200"/>
<mx:ConstraintColumn id="main_padding_left_col" width="200"/>
<mx:ConstraintColumn id="main_col" width="0"/>
<mx:ConstraintColumn id="main_padding_right_col" width="100%"/>
<mx:ConstraintColumn id="map_panel_col" width="145"/>
</mx:constraintColumns>
到此,我们就在容器中画好了类似于excel那样的格子。虽然这些格子我们看不到,
但是flex的compiler却已经明确知道他的意义是什么,并且会在内存中画好这些格子
接下来我们做的就是只需要把每一个组件对其到那个格子或者那几个格子。
3. 对齐组件到约束布局
我们写一个自定义的组件并把它添加到容器。
以下是一个组件:
<components:HeroPanelView id="hero_panel"
top="hero_panel_row:0" bottom="hero_panel_row:0"
left="hero_panel_col:0" right="hero_panel_col:0"/>
他的四个重要属性被使用:top, bottom , left , right .
只是不是像就对布局那样只使用一个数值,而是要加前缀(contraint id)
当让,也可以是组件不完全贴在容器上。 比如让底部 在相对应的格子底部上方5px的位置
就可以这样写: bottom="hero_panel_row:5"
以上几乎是约束布局的全部内容,虽然写起来并不那么容易,或者如果你初次见到可能还会
觉得带来更多的工作量(不如flexBuilder当中提供的WYSIWYD的方式开发快) ,但会给将来
代码的维护带来便利。建议使用这种方式。
注意:如果你错把 bottom="hero_panel_row:0" 写成 bottom="hero_panel_col:0" 编译器
是不会报错的。这里需要注意。
分享到:
相关推荐
小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 Flex...
微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小...
本源代码将研究学习微信小程序的FlexLayout布局实例,微信小程序界面设计实例,是一种流布局的实现例子,而不是大家熟悉的盒子式布局,据说即使需要深层的嵌套,FlexLayout布局的响应速度也不会超过1ms,可谓是非常...
flex 弹性布局,最后一行数量不足一行 列表项目左对齐的解决办法,经过实际测试,亲自有效,一行的数量可以随意设置。非常有用!
网页布局(layout)是CSS的一个重点应用。... 2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。
微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 ...
微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——...
flex 页面布局教程 详细介绍了页面的各个组件
可以实现flex布局的基本功能,flex的基本布局模板
1. 什么是 flex 布局 2. 基本概念 3. 容器的属性 4. 项目的属性1. 什么是 flex 布局 2. 基本概念 3. 容器的属性 4. 项目的属性 帮助理解项目属性 1. order 2. flex-grow 3. flex-shrink 4. flex-basis 5. flex 6. ...
Flex超炫布局 和win7的效果一样 Flex超炫布局 和win7的效果一样 Flex超炫布局 和win7的效果一样 导入IDE后可以直接运行
Flex 布局教程 Flex 布局教程 Flex 布局教程 Flex 布局教程 Flex 布局教程
微信小程序,Flex布局示例源代码,包括横向布局,纵向布局,基本涵盖了Flex布局的知识点,有相关的页面布局需求,可以直接拿来使用。
flex弹性布局基本语法(修改版).pdf
高清非扫描版本,特别适合放在kindle中看,非常好适合初始上手快
flex移动布局,极简公共样式包,可极大程度节约前端切图时间,对于响应式切图极为实用,兼容性较好,尤其适用于APP混合开发,附简易demo
html+css,使用flex布局搭建页面,纯前端,初学党可借鉴学习如何使用flex布局页面
display: flex弹性布局
携程网站 移动端 Flex布局,新人可以利用此资源来学习flex布局的应用 Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力。本文给出了 ...
flex web布局