`

Sencha第二章 布局(1)Box布局

 
阅读更多

Sencha Touch里的布局有五种

hbox

vbox

card

fit

auto[默认]

实际上可以分为Box布局和Fit布局两种。

Sencha touch里的布局应该理解为:该控件内部子项的排列方式。

我们今天先来看看box布局

 

Box布局

  顾名思义,box布局就是一个个的box组成的。

    hbox: 水平排列、垂直居中、靠左置顶

    vbox: 竖直堆叠、水平居中、靠上置顶

 

hbox:

hbox
Ext.setup({
    tabletStartupScreen: 'tablet_startup.png',
    phoneStartupScreen: 'phone_startup.png',
    icon: 'icon.png',
    glossOnIcon: false,
    onReady : function() {
        var pnl = new Ext.Panel({
            fullscreen: true,
            layout: 'hbox',
            items:[
                {xtype:'button',text:'按钮1'},
                {xtype:'button',text:'按钮2'},
                {xtype:'button',text:'按钮3'}
            ]
        });
    }
});

 

 

vbox:

  将以上的hbox改为vbox

 

  但是,只是知道这些,还不足以玩转box布局,下面让我们看看其他常见的box布局实例。

vbox变型:

vbox变型
Ext.setup({
    tabletStartupScreen: 'tablet_startup.png',
    phoneStartupScreen: 'phone_startup.png',
    icon: 'icon.png',
    glossOnIcon: false,
    onReady : function() {
        var pnl = new Ext.Panel({
            fullscreen: true,
            layout: 'vbox',
            defaults: {
                flex: 1
            },
            items:[
                {xtype:'button',text:'按钮1'},
                {xtype:'button',text:'按钮2'},
                {xtype:'button',text:'按钮3'}
            ]
        });
    }
});

  关于这里的flex,sencha Touch使用了css3中的弹性和模型,所以大家如果有兴趣可以看看 扩展阅读:css3中的弹性盒模型

 

vbox变型2

  在上面代码的defaults中加入width : '100%',得到下图

 

  了解以上内容之后,我们来想想经典的九宫格布局如何实现吧!

  相必大家也已经心中有数了。

 

经典的九宫格布局:

九宫格
Ext.setup({
    tabletStartupScreen: 'tablet_startup.png',
    phoneStartupScreen: 'phone_startup.png',
    icon: 'icon.png',
    glossOnIcon: false,
    onReady : function() {
        var pnl = new Ext.Panel({
            fullscreen: true,
            layout: 'vbox',
            defaults: {
                flex: 1,
                width: '100%',
                defaults: {
                    flex: 1,
                    height: '100%'
                }    
            },
            items:[{
                xtype: 'panel',
                layout: 'hbox',
                items:[
                    {xtype:'button',text:'按钮1'},
                    {xtype:'button',text:'按钮2'},
                    {xtype:'button',text:'按钮3'}
                ]
            },{
                xtype: 'panel',
                layout: 'hbox',
                items:[
                    {xtype:'button',text:'按钮4'},
                    {xtype:'button',text:'按钮5'},
                    {xtype:'button',text:'按钮6'}
                ]
            },{
                xtype: 'panel',
                layout: 'hbox',
                items:[
                    {xtype:'button',text:'按钮7'},
                    {xtype:'button',text:'按钮8'},
                    {xtype:'button',text:'按钮9'}
                ]
            }]
        });
    }
});

 


 

  嫌紧挨着不舒服?别急,我们还有些属性没用上!你没有猜错那就是-----marginpadding!你知道怎么做的!

 

松散九宫格:

松散九宫格
Ext.setup({
    tabletStartupScreen: 'tablet_startup.png',
    phoneStartupScreen: 'phone_startup.png',
    icon: 'icon.png',
    glossOnIcon: false,
    onReady : function() {
        var pnl = new Ext.Panel({
            fullscreen: true,
            layout: 'vbox',
            defaults: {
                flex: 1,
                width: '100%',
                padding: 10,
                defaults: {
                    flex: 1,
                    height: '100%',
                    margin: 10
                }    
            },
            items:[{
                xtype: 'panel',
                layout: 'hbox',
                items:[
                    {xtype:'button',text:'按钮1'},
                    {xtype:'button',text:'按钮2'},
                    {xtype:'button',text:'按钮3'}
                ]
            },{
                xtype: 'panel',
                layout: 'hbox',
                items:[
                    {xtype:'button',text:'按钮4'},
                    {xtype:'button',text:'按钮5'},
                    {xtype:'button',text:'按钮6'}
                ]
            },{
                xtype: 'panel',
                layout: 'hbox',
                items:[
                    {xtype:'button',text:'按钮7'},
                    {xtype:'button',text:'按钮8'},
                    {xtype:'button',text:'按钮9'}
                ]
            }]
        });
    }
});

分享到:
评论

相关推荐

    Sencha 和 Sencha Touch 简介

    Sencha Touch 是第一个专门设计为移动设备开发 web 应用的 JavaScript 框架,它基于 HTML5 和 CSS3 的 web 标准,全面兼容 Android 和 Apple iOS,通过 Sencha Touch 框架用户可以创建非常像移动设备本地应用的 web ...

    Sencha Touch 2 简介+组件+布局

    Sencha Touch 2 简介知识,环境搭建,组件介绍和布局事例

    sencha touch accordion(折叠) 布局

    Sencha Touch 是一款用于开发移动Web应用程序的JavaScript框架,它提供了丰富的组件和布局方式,使得开发者可以构建出具有原生感的触摸友好型应用。在Sencha Touch中,`Accordion`布局是一种特殊的布局方式,主要...

    SenchaSencha

    Sencha

    sencha.js sencha.css

    sencha-touch.css是触控版本的样式文件,提供了移动应用的样式和布局。而sencha-touch-all-debug.js是Sencha Touch的全功能调试版本,包含了所有组件和功能,方便开发者在开发阶段进行调试和测试。在生产环境中,...

    SenchaCmd6.6安装程序

    Sencha Cmd是一款强大的命令行工具,专为Sencha框架(如Sencha Touch和Ext JS)的开发和构建过程提供便利。在安装SenchaCmd6.6版本时,我们需要按照一定的步骤进行,确保其能顺利集成到开发环境中。下面将详细介绍...

    Sencha Touch 2 -- 页面布局

    用Sencha Architect Tool开发的第一个程序.

    sencha touch项目源码

    7. **样式与布局**:Sencha Touch使用CSS3进行样式控制,项目中可能有自定义的样式文件,如`app.css`,用于定义组件的外观和布局。 8. **模板与渲染**:Sencha Touch支持使用模板(Template)来动态生成HTML,这在...

    Sencha Touch in Action

    1. Sencha Touch框架概述:介绍Sencha Touch的特性、版本历史以及如何使用它来构建响应式的移动Web应用。 2. 开发环境搭建:指导读者如何搭建Sencha Touch的开发环境,包括下载和安装Sencha Touch库。 3. 用户界面...

    SenchaTouch音频播放器

    接下来,你需要在Sencha Architect这样的可视化设计工具中布局和配置应用。Sencha Architect提供了一个图形化的界面,帮助开发者无需编写大量代码就能构建Sencha Touch应用。通过拖拽和配置组件,你可以快速地搭建...

    Sencha Architect绿色版

    在使用Sencha Architect绿色版时,开发者可以直观地设计和布局UI组件,如表格、面板、按钮、表单等。通过拖放功能,可以轻松添加和配置这些组件,调整它们的属性和行为。此外,Architect还支持实时预览,使得开发者...

    Sencha touch 移动开发

    ### Sencha Touch 移动开发知识点详解 #### 一、概览 Sencha Touch 是一款专为移动设备设计的高性能 JavaScript 框架,能够帮助开发者构建原生体验的应用程序。它支持 HTML5 和 CSS3 的最新标准,并且兼容多种移动...

    sencha前端开发框架

    2. **CSS 样式文件**:为了实现美观的界面,Sencha Touch 提供了一套完整的 CSS 样式表,如 `sencha-touch.css` 和其压缩版 `sencha-touch.min.css`,用于定义组件的样式和布局。 3. **主题资源**:Sencha Touch ...

    Sencha Touch2环境搭建

    1. **获取Sencha Touch 2 源码** - 打开终端或命令提示符,使用Git克隆Sencha Touch 2的官方仓库: ``` git clone https://github.com/sencha/Sencha-Touch.git ``` 2. **创建新项目** - 使用Sencha CMD创建一个...

    sencha cmd

    1. **初始化项目**:使用Sencha Cmd,你可以快速初始化一个新的Sencha Touch项目。通过运行`sencha generate app`命令,可以生成一个包含基本目录结构和基础文件的新项目。Ruby可以在项目初始化阶段辅助处理配置文件...

    sencha-touch grid 代码

    1. **组件化设计**:Sencha Touch Grid基于组件模型,这意味着你可以将网格视为由多个可重用部分组成的单元,如行、列、头部和体部。这使得定制和扩展变得容易。 2. **数据绑定**:Grid与Sencha的数据存储(Store)...

    sencha touch 登陆界面

    Sencha Touch 是一款专为移动设备设计的JavaScript框架,它提供了丰富的组件库和强大的数据管理功能,用于构建高性能的触控应用。"sencha touch 登陆界面"这个主题,主要涉及的是如何使用Sencha Touch来设计和实现一...

    SenchaCmd 6.2.2

    1. **项目初始化**:可以快速创建一个新的Sencha应用,根据用户选择的框架(如Sencha Touch或Ext JS)和应用模板自动生成基础结构。 2. **构建管理**:执行编译任务,将源代码转换为优化过的生产环境代码,包括合并...

    sencha touch list demo

    1. **Sencha Touch 框架概述** Sencha Touch 是一个基于JavaScript的框架,目标是为智能手机和平板电脑提供原生般的交互体验。它支持多平台,包括iOS、Android、Blackberry等,并且包含了大量可复用的UI组件,如...

Global site tag (gtag.js) - Google Analytics