Sencha Touch 1.1培训教程第四章:Sencha Touch布局介绍
作者:廖 章 编辑整理:刚 子 来自:移动Web开发社区
在我们的Web应用开发中,页面的排版、布局很重要,用户就是通过页面操作来完成日常工作的。如果界面布局不合理、操作不方便,用户也不会对系统有好的印象、甚至有可能影响一个项目的成败。我自己的经验是,在开发某个功能模块时,除了仔细属性该模块的功能需求和业务需求外,还会在草稿纸上简单的把该功能的布局画出来(如果美工已经制作有页面模型外)。例如:
该图片为适合页面被自动缩小. 查看大图请点击.
Sencha Touch的布局类似Extjs中的布局,常用的有:BoxLayout、HBoxLayout、VBoxLayout、FitLayout、CardLayout。
BoxLayout、HBoxLayout、VBoxLayout(箱子布局)
BoxLayout是箱子布局,该布局类似于药店里放置中草药的大柜子里一个个小箱子那样,把组件放置在容器中(Container)中。BoxLayout是HBoxLayout和VBoxLayout这两个布局类的父类,一般很少直接使用。
- HBoxLayout是水平箱子布局,即把组件横排的放置在容器中。
代码清单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
var viewport = new Ext.Panel({
fullscreen: true ,
margin: '0 0 0 0' ,
layout: {
type: 'hbox' ,
align: 'stretch'
},
items: [{
flex: 1,
style: 'border:1px red solid' ,
margin: '0 20 0 0' ,
items: [{
xtype: 'button' ,
text: '第一' ,
margin: 6
}]
},{
flex: 2,
style: 'border:1px red solid' ,
margin: '0 20 0 0' ,
html: '<div style="border:1px red dashed;margin:6px;">第二个小箱子</div>'
},{
flex: 3,
style: 'border:1px red solid' ,
items: [{
xtype: 'button' ,
text: '第三' ,
margin: 6
}]
}]
});
|
有两个属性需要关注一下:
1、 align: 'stretch',该属性是设置容器里‘小容器’的对齐方式。
2、 flex属性是设置‘小容器’的宽度比率,具体的计算方式请参看文档。 当然还有其他的属性,例如:style、margin、padding,这些属性主要是设置样式的。
- VBoxLayout垂直箱子布局,即把组件垂直的放置在容器中。
代码清单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
var viewport = new Ext.Panel({
fullscreen: true ,
margin: '0 0 0 0' ,
layout: {
type: 'vbox' ,
align: 'stretch'
},
items: [{
flex: 1,
style: 'border:1px red solid' ,
margin: '0 0 10 0' ,
items: [{
xtype: 'button' ,
text: '第一' ,
margin: 6
}]
},{
flex: 2,
style: 'border:1px red solid' ,
margin: '0 0 10 0' ,
html: '<div style="border:1px red dashed;margin:6px;">第二个小箱子</div>'
},{
flex: 3,
style: 'border:1px red solid' ,
items: [{
xtype: 'button' ,
text: '第三' ,
margin: 6
}]
}]
});
|
FitLayout(自适应布局)
FitLayout是布局的基础类,对应面板布局配置项的名称为fit,使用fit布局将使面板子元素自动充满容器,如果在当前容器中存在多个子面板则只有一个会被显示。
代码清单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var viewport = new Ext.Panel({
fullscreen: true ,
margin: '0 0 0 0' ,
layout: 'fit' ,
items: [{
style: 'border:1px red solid' ,
html: '<div style="border:1px red dashed;margin:6px;">第一个小箱子</div>'
},{
style: 'border:1px blue solid' ,
html: '<div style="border:1px red dashed;margin:6px;">第二个小箱子</div>'
}]
});
|
CardLayout(卡片式布局)
CardLayout在sencha touch中是最常用的布局,模仿本地应用的页面转换效果主要通过它来体现出来。它是扩展自FitLayout布局,对应面板布局配置项的名称为card。该布局会包含多个子面板,但任何时候都只有一个子面板处于显示状态,这种布局经常用来制作向导和标签页。
各个字面板之间切换的途径是调用setActiveItem方法,该方法接收一个子面板对象或id、索引作为参数。
代码清单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
var funBar = {
xtype: 'toolbar' ,
title: 'CardLayout例子' ,
dock: 'top' ,
scroll: 'horizontal' ,
height: 30,
items: [{
xtype: 'button' ,
text: '桌面' ,
ui: 'back' ,
style: btStyle,
handler: function (){
window.location = prefix + '/index.action' ;
}
},{
xtype: 'button' ,
text: '第一个子面板' ,
style: btStyle,
handler: function (){
changeItem( 'p1' );
}
},{
xtype: 'button' ,
text: '第二个子面板' ,
style: btStyle,
handler: function (){
changeItem( 'p2' );
}
}]
};
var viewport = new Ext.Panel({
fullscreen: true ,
margin: '0 0 0 0' ,
layout: 'card' ,
activeItem: 0,
dockedItems: [funBar],
items: [{
id: 'p1' ,
style: 'border:1px red solid' ,
html: '<div style="border:1px red dashed;margin:6px;">第一个小箱子</div>'
},{
id: 'p2' ,
style: 'border:1px blue solid' ,
html: '<div style="border:1px red dashed;margin:6px;">第二个小箱子</div>'
}]
});
var changeItem = function (id){
viewport.setActiveItem(id, 'slide' );
};
};
|
在 2012年01月10日 13:23 被 刚子 最后编辑
分享到:
相关推荐
自己基本测试了下可用,不过没有放入总条数之类的,长度有限,他的原理就是可以动态修改传递的start 以及 limit,如果有其他参数请在 store里面放入baseParams 参数如: , baseParams : { sort : 'foodprice ...
4. **用户手册**:全面介绍Sencha Touch的架构、工作原理以及最佳实践。 将这个文档部署到Tomcat的webAPP目录下,意味着你可以通过Web服务器访问这些离线文档,无需网络连接,这对于开发者来说非常方便,特别是在...
本文通过对 Sencha Touch 框架的介绍,使读者对该框架有一定的了解,并通过一些代码示例给用户更详细直观的对 Sencha Touch 框架功能的了解。 ExtJS ExtJS 是为 web 开发人员提供的基于 JavaScript 和 web 标准快速...
Sencha Touch 是一款专为移动设备设计的JavaScript框架,它提供了丰富的组件库和强大的数据管理功能,用于构建高性能的触控应用。"sencha touch 登陆界面"这个主题,主要涉及的是如何使用Sencha Touch来设计和实现一...
移动Web应用,简单来理解就是针对移动终端优化过的Web 站点,终端用户通过支持Html5、Css3、Javascript标准的Webkit内核浏览器访问部署在服务器的Web应用。
7. **样式与布局**:Sencha Touch使用CSS3进行样式控制,项目中可能有自定义的样式文件,如`app.css`,用于定义组件的外观和布局。 8. **模板与渲染**:Sencha Touch支持使用模板(Template)来动态生成HTML,这在...
《般若人生》是一款基于Sencha Touch框架开发的移动应用项目。Sencha Touch是一个流行的JavaScript框架,专门用于构建跨平台的触屏友好型Web应用程序。它提供了丰富的UI组件和强大的数据管理工具,使得开发者能够...
4. **Sencha CMD** - 安装Sencha CMD,它是Sencha Touch开发的核心工具,提供了一系列自动化命令,如创建项目、生成组件、编译代码等。可以通过Sencha官网下载并按照指导进行安装。 接下来,我们将按照以下步骤搭建...
Sencha Touch 是一款专为移动设备设计的前端框架,它提供了丰富的组件库和强大的数据管理功能,用于构建高性能的触控应用。这个压缩包文件包含了创建一个完整的Sencha Touch 应用所需的基本元素,让我们逐一解析这些...
4. **配置文件和结构**:在Sencha Touch 2的MVC实现中,应用通常由app.js文件启动,这个文件会定义应用的基本配置,包括要加载的模型、视图、控制器等。每个MVC组件都有自己的JavaScript文件,如模型文件(model/...
3. **响应式布局**:Sencha Touch强调响应式设计,2.4.0版本可能强化了这一特性,让开发者能更容易地适应不同屏幕尺寸和分辨率的设备。 4. **数据绑定**:Sencha Touch提供了一种强大的数据绑定机制,2.4.0可能...
3. **视图(Views)**:介绍各种UI组件,如按钮、列表、面板、表单等,以及如何自定义和布局这些组件以创建用户界面。 4. **控制器(Controllers)**:说明如何通过控制器管理视图之间的交互和事件,实现应用逻辑的...
Sencha Touch 是一款专为移动设备设计的前端框架,它提供了丰富的组件库,用于构建高性能的触屏Web应用。在“sencha touch list demo”中,我们主要关注的是Sencha Touch中的列表(List)组件,这是一个核心且常用的...
FusionCharts 提供了一些内置方法来调整图表大小,但可能需要根据Sencha Touch 的布局规则进行额外的样式调整。 6. **事件监听**:FusionCharts 支持多种交互事件,如点击图表、图例等。你可以结合Sencha Touch 的...
4. **命令式和声明式创建**:介绍了如何使用JavaScript代码或XTemplate创建和配置组件。 5. **路由和导航**:Sencha Touch 2支持页面间的导航和URL路由,方便构建复杂的多页面应用。 6. **主题和皮肤**:API文档会...
4. **调试支持**:可能包含Sencha Touch应用的调试工具,帮助开发者定位和解决问题。 5. **构建集成**:与Sencha Cmd或Webpack等构建工具集成,实现一键编译和打包。 标签中的"sencha touch"和"VScode"进一步确认了...