`
mylxiaoyi
  • 浏览: 328365 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

创建基于约束的布局

阅读更多

在这一节将向我们演示如何在Adobe Flex Builder中创建基于约束的布局。当用户调整程序窗口时,基于约束的布局保证我们用户界面中的组件进行自动调整。

设置我们的工程
在我们开始这一节之前,我们要先完成下面的任务:
如果我们还没有创建工程,创建Lessons工程。
确保打开了自动构建选项。

了解Flex中的基于约束的布局
当用户调整一个Flex程序窗口时,我们希望布局中的组件可以进行自动调整。当用户调整程序窗口时,一个约束的布局可以调整组件的尺寸和位置。
为了创建一个基于约束的布局,我们必须使用一个容器,而这个容器的layout属性要设置为absolute(layout="absolute")。这个属性给了我们使用absolute位置来设置组件位置与尺寸的灵活性,同时也提供了当容器被调整时设置与移动组件的约束的能力。例如,如果我们希望当用户将程序窗口变宽时,一个TextInput文本框可以伸展,我们可以用容器的左右边界来界定这个控件,这样文本框的宽度就可以用窗口的宽度来设定。
在Flex中,所有的约束都是相对于容器的边界来设置的。他们不可以相对于其他控件进行设置。现在我们了解了基本的概念,我们可以在Flex Builder中创建一个简单的布局并且定义约束。

插入与放置组件
创建基于约束的布局的第一步就是要在一个容器中放置组件,这个容器的layout属性设置为absolute。这个属性可以使得我们在这个容器中将组件拖放到任何位置。为了象素点的精度,我们可以设置X与Y坐标。
在这一节中,我们在简单的反馈表单中插入并放置组件。

1 在浏览视图中选择Lessons工程,选择File>New>MXML Application,创建一个名为Layout.mxml的工程。

2 将Layout.mxml文件设置为默认编译的文件。

3 在MXML编辑器的设计模式中,通过从组件视图中拖放组件来和Layout.mxml文件中添加一个Lable和一个TextInput控件。

4 使用鼠标将Label与TextInput控件并肩放置在从容器顶部算起60象素处。
5 在Flex属性视图中,扩展属性的Common与Layout类。
出现设置common与Layout属性的选项。

如果我们看到一个属性表而不是前面的样子,点击标准视图按钮。
1 选择Label控件并设置为如下的属性:
Text: Email
X: 20
Y: 60
2 选择TextInput控件并设置为如下的属性:
X: 90
Y: 60
Width: 300
3 切换到MXML编辑器的代码模式,Layout.mxml文件应包含如下的代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Label x="20" y="60" text="Email"/>
    <mx:TextInput x="90" y="60" width="300"/>
</mx:Application>
4 添加其余的Flex控件,如下面的代码所示:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Label x="20" y="60" text="Email"/>
    <mx:TextInput x="90" y="60" width="300"/>
    <mx:Label x="20" y="90" text="Comments"/>
    <mx:TextArea x="90" y="90" width="300" />
    <mx:Button x="330" y="150" label="Send"/>
</mx:Application>
布局预览图如下:

5 保存文件
Flex Builder会编译这个程序。
6 运行程序。
程序的运行效果如下图所示:

7 拖放浏览器窗口使得程序窗口变大或变小。
这些组件保持他们相对于窗口左边与上边的位置,但是当我们调整浏览器窗口时这些组件并不会伸展与压缩。例如,当我们使得浏览器窗口变得更窄时,发送按钮就会消息,而TextArea与TextInput控件也会部分消失。

下一步就是为这个布局设置约束,这样当我们调整程序窗口时这些组件就会自动调整。
定义布局约束
在我们的布局中放置组件以后,我们定义布局约束,这样当用户调整程序窗口时,组件可以自动调整。
1 在MXML编辑器的设计模式中,选择TextInput控件(EMail地址)。
2 在Flex属性视图时,确保了属性的布局类。布局类包含了用于设置锚点的选项:
3 在这个视图中通过选择左和右锚点复选框来为TextInput控件定义布局约束,然后指定距窗口左边90,距窗口右边60,如下图所示:

这两个复选框将TextInput控件相对于窗口的左边与右边固定在屏幕上。与文本框相关的数字指明了控件距离窗体边框的距离。
左边界是固定控件所必须的,这样当用户水平调整程序窗口时,他会自动扩展或压缩。如果没有左边界的定位,控件就会滑向左边或是右边。
在MXML代码中这些约束如下进行表式:
<mx:TextInput y="60" left="90" right="60"/>
4 在编辑器的设计模式中,选择TextInput控件,在Flex属性视图中,选择四个角的复选框,并且指定如下的距离:
Left: 90
Right: 60
Top: 90
Bottom: 190
在Flex属性视图中,TextArea控件视图如下:

5 选择按钮控件,在Flex属性视图中,点击右与下锚点复选框,并且指定距右边界为60,距下边界为150。如下图所示:

这两个复选框将按钮控件固定在窗口右下角。没有锚点将控件相对于左边与上边固定,当用户调整程序时,控件就会水平或是垂直进行移动。
6 保存文件,当编译完成时运行程序。
程序的运行结果如下:
  
分享到:
评论

相关推荐

    android demo,ConstraintLayout (约束布局)

    综上所述,"android demo,ConstraintLayout"这个项目提供了学习和实践ConstraintLayout的绝佳机会,通过这个demo,开发者可以深入理解并掌握如何利用约束布局创建高效、自适应的用户界面。通过实际操作和调试,将有...

    基于 Constraints 布局方式实现的一个 Demo ,可以跟着学习下 Constraints 的用法.zip

    这个"基于 Constraints 布局方式实现的一个 Demo"是一个开源项目,旨在帮助开发者深入理解和应用ConstraintsLayout。下面我们将详细探讨ConstraintsLayout的核心特性、优势以及如何使用它。 ConstraintsLayout的...

    swift-FLKAutoLayout-UIViewcategory用于在代码中轻松创建布局约束

    在Objective-C中,创建和管理这些约束通常需要编写较多的代码,而Swift-FLKAutoLayout就是为了解决这个问题,使Swift开发者能够更简洁、高效地处理布局约束。 FLKAutoLayout提供了一系列便捷的方法,如`...

    android布局_Android布局_android_

    6. **约束布局(ConstraintLayout)**:这是Android Studio 2.0引入的新布局,允许开发者创建复杂的界面,无需嵌套布局。通过连接视图间的约束,可以实现响应式设计,适用于不同屏幕尺寸的设备。 7. **百分比布局...

    JavaCola:WebCola(基于约束的图形布局)从TypeScript到Java的移植

    WebCola是一个强大的开源库,主要用于在Web应用程序中进行基于约束的图形布局,它允许开发者以交互式的方式展示复杂的数据结构,如网络图、树形图等。在JavaScript和TypeScript的世界中,WebCola已经得到了广泛的...

    Layout-Helper:创建布局助手是为了解决基于约束的布局的问题,在该布局中,开发人员受相同特征的大小类绑定,但具有不同的屏幕大小。 布局助手将使开发人员可以自由地为每个设备更新约束,各种UI元素的字体

    创建布局助手是为了解决基于约束的布局的问题,在该约束中,对于相同尺寸类别但具有不同屏幕尺寸的尺寸类别,开发人员受其约束。 布局助手将使开发人员可以自由地为每个设备更新约束,各种UI元素的字体。 安装 可可...

    ConstraintLayout全解&实例,官方推荐的约束布局

    ConstraintLayout是一种基于约束的布局方式,它允许开发者通过可视化的方式,灵活地调整和约束控件之间的相对位置,实现了类似前端Flexbox布局的效果。相比于传统的LinearLayout、RelativeLayout等布局,...

    swift-DLLLayout是一个基于UIView.frame的轻量级iOS布局框架

    1. **定义布局规则**:DLLLayout支持创建自定义的布局规则,如设置视图的宽度等于另一视图的宽度,或者让视图与父视图的边缘保持一定的距离。 2. **链式语法**:框架提供了链式调用接口,使得代码更加简洁易读。你...

    qq登录界面布局实例

    首先,我们需要了解Android中的几种基本布局类型,如LinearLayout(线性布局)、RelativeLayout(相对布局)、ConstraintLayout(约束布局)等。QQ登录界面可能结合了多种布局,以实现灵活的元素对齐和定位。例如,...

    swift-这是一个示例项目实现功能UITableViewCell动态高度基于自动布局

    本项目“swift-这是一个示例项目实现功能UITableViewCell动态高度基于自动布局”是针对Swift开发的一个实例,旨在展示如何利用自动布局(Auto Layout)来动态计算UITableViewCell的高度,并实现标签(UILabel)的...

    android 自适应布局

    Android AutoLayout通过引入约束布局,使得开发者能够轻松地创建自适应各种屏幕尺寸的布局。这不仅减少了开发工作量,还提高了用户体验。熟练掌握AutoLayout的使用,对于优化Android应用的跨设备适配至关重要。在...

    Android之布局实例

    约束布局是Android 26版本引入的新布局,它允许开发者创建更复杂、响应式的用户界面。子视图之间的关系通过连接(constraints)来定义,可以设置水平和垂直的约束,甚至可以定义角度约束。约束布局在处理多屏幕适配...

    CLAutoLayoutTemplates:基于模板创建 UIView 约束

    CLAutoLayoutTemplates 基于模板创建 UIView 约束。 这个库背后的概念是允许创建自动布局约束的“模板”,并在需要时将它们应用到视图(有或没有动画)。 这是在故事板或 nib 文件中保留所有自动布局定义的好方法。 ...

    android 自动布局 简单示例

    ConstraintLayout解决了上述问题,它基于约束的概念,允许开发者通过设置视图之间的关系来定义它们的位置。每个视图都可以被约束到其他视图的边缘,也可以约束到屏幕的边缘。这种布局方式使得布局在不同屏幕尺寸下都...

    Android动态布局

    10. **约束布局(ConstraintLayout)** 结合使用ConstraintLayout的动态创建,可以更灵活地构建复杂的界面布局,通过编程方式调整视图之间的约束关系。 总之,Android动态布局是开发者手中的利器,能够实现高度...

    Swift自适应布局(Adaptive Layout)教程

    通过调整不同Size Class的约束,我们可以为每个设备类型创建定制的布局。 6. **使用 traitCollection 的变化**:在Swift中,我们可以监听`traitCollectionDidChange`通知,以便在设备旋转或切换到不同尺寸的设备时...

    android 中页面布局使用demo

    6. **约束布局(ConstraintLayout)**:是Android Studio 2.2引入的新布局,它使用直观的图形界面来实现复杂的界面设计,允许子视图之间建立各种约束,实现自适应和响应式布局。 7. **绝对布局(AbsoluteLayout)**...

    Android 五大布局之(一) 线性布局和相对布局

    此外,Android Studio还支持约束布局(ConstraintLayout),它进一步提高了布局设计的灵活性,允许视图在多方向上相互约束,有时甚至可以替代线性布局和相对布局。 总的来说,理解和熟练运用线性布局和相对布局是...

    Tampilan_Constraint_Layout:Tampilan Metode约束布局

    1. **响应式设计**:约束布局允许创建基于比例的布局,使得视图在不同屏幕尺寸上保持正确的比例关系。 2. **可视化编辑**:Android Studio提供了强大的设计视图,可以直接拖放并设置约束,大大简化了布局构建过程。 ...

    MFC界面编程布局管理

    在IT行业中,MFC(Microsoft Foundation Classes)是一个基于C++的类库,它为Windows应用程序开发提供了丰富的功能,包括窗口、对话框、控件、文件处理等。在MFC中,界面布局管理是一项重要的任务,它涉及到如何在...

Global site tag (gtag.js) - Google Analytics