牛骨文教育服务平台(让学习变的简单)
博文笔记

ExtJs 6.0+快速入门之布局详解(Layout)

创建时间:2017-06-11 投稿人: 浏览次数:2385

布局作为最重要的

这种布局是ExtJs 中默认的布局
这种布局的一般情况是按照从上到下的堆叠的方式进行堆叠的

代码

{
title: "ContainerLayout(默认布局)",
/**
 * layout: "container",//指定布局为container,这里是可以忽略的值
 */
items: [{
    height: 100,
    title: "高度50",
}, {
    width: 500,
    title: "宽度500",
    html: "内容"
}, {
    title: "宽度200 高度200",
    height: 200,
    width: 200
}

效果图

这里写图片描述

AnchorLayout与ContainerLayout类似,相似之处在于它是一个一个的堆叠摆放。不同之处在于可以通过给子元素制定anchor属性,动态实现尺寸的调整。anchor的使用方法如下。
可以使用2种方法进行制定

百分比

百分比指的是占用父控件的长度与宽度
这里写图片描述

偏移量

偏移量是最难理解的一个部分,比如,我们有一个容器,长度为100px,如果我们指定这个布局下的子控件的宽度偏移量为-20,那么这个子控件的宽度就是80,如图所示‘
这里写图片描述

代码

{
title: "AnchorLayout(锚定式布局)",
layout: "anchor",
scrollable: true,
items: [{
    xtype: "panel",
    title: "宽度75% 高度20%",
    anchor: "75% 20%"
}, {
    xtype: "panel",
    title: "最大宽度-300 高度-400",
    anchor: "-300 -400"
}, {
    xtype: "panel",
    title: "最大宽度-300 高度20%",
    anchor: "-250 20%"
}

效果图

这里写图片描述

FormLayout 主要用于用户填写的表单,与Anchor Layout相似,同时必须要记住FormLayout 是anchor layout的一个子类,所以同样可以使用anchor 属性及进行动态的调整表单

代码

{
title: "FormLayout(表单式布局)",
layout: "form",
defaultType: "textfield",
items: [{
    fieldLabel: "姓",
    name: "first",
    allowBlank: false
}, {
    fieldLabel: "名",
    name: "last"
}, {
    fieldLabel: "公司",
    name: "company"
}, {
    fieldLabel: "邮箱",
    name: "email",
    vtype: "email"
}, {
    fieldLabel: "生日",
    name: "dob",
    xtype: "datefield"
}, {
    fieldLabel: "年龄",
    name: "age",
    xtype: "numberfield",
    minValue: 0,
    maxValue: 100
}, {
    xtype: "timefield",
    fieldLabel: "时间",
    name: "time",
    minValue: "8:00am",
    maxValue: "6:00pm"
}]
}

效果图

这里写图片描述

绝对布局其实没有什么可以讲的,主要是两个属性值,x跟y,x与css属性中的left 一致,y与css属性中top一致,同时还可以设置width,height属性,或者anchor属性。通过这些属性来设置其宽度或者距离right,与bottom的距离,

代码

{
title: "AbsoluteLayout(绝对布局)",
layout:"absolute",
defaultType:"textfield",
items: [{
    x: 10,
    y: 10,
    xtype: "label",
    text: "收件人:",
    allowBlank:false
}, {
    x: 80,
    y: 10,
    name: "to",
    anchor: "90%" // anchor width by percentage
}, {
    x: 10,
    y: 40,
    xtype: "label",
    text: "主题:"
}, {
    x: 80,
    y: 40,
    name: "subject",
    anchor: "90%" // anchor width by percentage
}, {
    x: 0,
    y: 80,
    xtype: "textareafield",
    name: "msg",
    emptyText:"在这里输入信息内容",
    anchor: "100% 100%" // anchor width and height
}],
},

效果图这里写图片描述

Fit ,一看名字就知道很凑合,这是一个宽度与高度都与父容器一致的子控件,相当于anchorlayout中吧anchor设置为anchor:’100% 100%’而且问题是没办法修改的,所以出镜率还是不算很高。

代码

{
title:"FitLayout(适配式布局)",
layout:"fit",
items:{
    title:"子面板",
    html:"Fit Layout 的主要特性是一个容器只能容得下一个子控件,多余的子控件将被隐藏掉",
    frame:true,

}
}

效果图

这里写图片描述

层叠式布局与fitlayout类似,它会占用整个父控件的容器,区别在于其可以存放多个控件

{
title:"AccordionLayout(层叠式布局)",
defaults: {
    //这个属性会默认的设置到每一个子控件的css属性中
    bodyStyle: "padding:15px"
},
layout: {
    type: "accordion",
},
items: [{
    title: "面板1",
    html: "我是面板一"
},{
    title: "面板2",
    html: "我是面板2"
},{
    title: "面板3",
    html: "我是面板3中的内容"
}]
}

效果图

这里写图片描述

卡片式布局,顾名思义,就是类似一张又一个的卡片

暂时更新至2017年6月11日晚22时

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。