【翻译】The Layout System 布局

In Sencha Touch there are two basic building blocks: componentsand containers. When

you instantiate both with no configuration, they look the same. However, there is one

important difference: containers can containcomponents (or other containers):

在Sencha Touch中,有两个基本模块:组件(Components)容器(Contaniners),如果不靠配置去实例化他们,也许你会发现他俩没啥区别,但是我要指出的是他们之间最大的不同便是,容器可以包含组件。

var container = Ext.create('Ext.Container', {
items: [{
xtype: 'component',
html: 'Nested component'
}, {
xtype: 'container',
items: [{
xtype: 'component',
html: 'Nested container with component'
}]
}]
});

Usually when containers hold other components, you want to think about how to po‐

sition these multiple components. Maybe you want to position the components on top

of each other, or maybe next to each other. In other words, you want to give the container

a layout.

通常来说,当容器内含有其他组件的时候,你需要思考如何定位这么多的组件,也许你想将他们排列在Top,也许你想将他们并排排列,换句话说,你想要一个布局。

Under the hood, Sencha Touch uses the CSS3 flexbox layout. This is different from Ext

JS 4, which uses JavaScript to dynamically calculate absolute CSS positions. The reason

for the difference is because Ext JS needs to support old legacy browsers (IE6, ouch!).

CSS3 flexbox layouts work only in modern browsers, and even here, there are multiple

implementations required to support multiple browsers. To understand CSS3 flexbox

layouts, take a look at “A Complete Guide to Flexbox”.

While implementing layouts in Sencha Touch (and in Ext JS), you do not need to worry

about the underlying CSS techniques—the framework takes care of it. That said, some

concepts, like flexing boxes in Sencha Touch (dynamic sizing), are similar to the CSS3

flexbox techniques

在底层,Sencha Touch使用Css3的FlexBox布局,这不同于以前的ExtJs4,后者因为要兼容老的浏览器,所以要利用Js去动态实现CSS定位,而Flex布局只运行在现代浏览器上,为了支持多种浏览器,css3提供了多种实现。

Ext.Componentis the base class for any Sencha Touch view component (widget).

Ext.Containeris the base class for any Sencha Touch component that may visually

contain other components. The most commonly used container classes for Sencha

Touch are Ext.Panel, Ext.tab.Panel, and Ext.form.Panel.Containers handle the

basic behavior for containing, inserting, showing, removing, and hiding items.

Ext.Component是SenchaTouch 视图组件(widget)中最基础的类,

Ext.Container是SenchaTouch 中包围着component(组件)的一种容器,通常用到的容器有Ext.panel, Ext.tab.Panel,Ext.form.Panel,容器拥有自己的操作方法,比如包含(containing)、插入(inserting)、显示(showing)、隐藏(hiding)、删除(removing)各种组件。

Speaking

of containing items, you might want to position items next to each other, or even on

top of each other. Some items should be bigger than others. You might want to give

those a fixed width and height, or even better, a height and width relative to the screen

size. You can achieve all of this while working with layouts. To make this concept clear,

we’ll see some screenshots of all the different layout types. The next examples explain

all the different layout types provided by the layout package.

对于被包含的组件来说,你可能想要去定位他们,摆放他们,或者是都放在Top层,一些组件可能比其它组件大和高,显得不是很协调,此时,你就需要去自适应宽度和高度,或者做的更好一些,就需要根据屏幕去自适应,你通过布局实现这一切你想要的效果,通过这一章节,我们会看到不同的页面布局效果,下一节我将讲解不同的布局类所带来的不同的布局方案

In this chapter, you’ll learn:

  • How to implement a horizontal layout
  • How to implement a vertical layout
  • How to implement a full screen (fit) layout
  • How to implement a card layout
  • How to implement the default layout (no layout)
  • How to dock components

在这个章节,你将学到

  • 怎么实现一个横向布局
  • 怎么实现一个竖向布局
  • 怎么实现一个全屏(自适应)布局
  • 怎么实现一个卡片布局
  • 怎么实现一个默认布局(无布局)
  • 怎么dock组件 (dock是固定在某个位置,比如Top或者Bottom)
  • Hands-on Sencha Touch2 中文翻译

@落雨 ae6623.cn

【翻译】Sencha Touch2.4 The Layout System 布局的更多相关文章

  1. 【翻译】在Ext JS和Sencha Touch中创建自己定义布局

    原文:Creating Custom Layouts in Ext JS and Sencha Touch 布局系统是Sencha框架中最强大和最独特的一部分.布局会处理应用程序中每个组件的大小和位置 ...

  2. [前端]使用JQuery UI Layout Plug-in布局 - wolfy

    引言 使用JQuery UI Layout Plug-in布局框架实现快速布局,用起来还是挺方便的,稍微研究了一下,就能上手,关于该布局框架的材料,网上也挺多的.在项目中也使用到了,不过那是前端的工作 ...

  3. Understanding the WPF Layout System

    Many people don't understand how the WPF layout system works, or how that knowledge can help them in ...

  4. 从 Auto Layout 的布局算法谈性能

    这是使用 ASDK 性能调优系列的第二篇文章,前一篇文章中讲到了如何提升 iOS 应用的渲染性能,你可以点击 这里 了解这部分的内容. http://t.cn/Rc4KbUC 在上一篇文章中,我们提到 ...

  5. JQuery UI Layout Plug-in布局

    端]使用JQuery UI Layout Plug-in布局   引言 使用JQuery UI Layout Plug-in布局框架实现快速布局,用起来还是挺方便的,稍微研究了一下,就能上手,关于该布 ...

  6. Sencha Touch2 工作笔记

    Sencha Touch2 工作笔记 Ext.dataview.List activate( this, newActiveItem, oldActiveItem, eOpts ) Fires whe ...

  7. [前端]使用JQuery UI Layout Plug-in布局

    引言 使用JQuery UI Layout Plug-in布局框架实现快速布局,用起来还是挺方便的,稍微研究了一下,就能上手,关于该布局框架的材料,网上也挺多的.在项目中也使用到了,不过那是前端的工作 ...

  8. Sencha Touch2 -- 11.1:定义具有关联关系的模型

    在Sencha Touch2.0中,可以定义不同模型之间的关联关系.例如,在开发博客网站的时候,可以首先定义用户(User)模型,然后为用户定义文章(Article)模型.一个用户可以发表多篇文章,因 ...

  9. 【BZOJ1731】[Usaco2005 dec]Layout 排队布局 差分约束

    [BZOJ1731][Usaco2005 dec]Layout 排队布局 Description Like everyone else, cows like to stand close to the ...

随机推荐

  1. PHP生成随机字符串包括大小写字母

    PHP生成随机字符串包括大小写字母,这里介绍两种方法: 第一种:利用字符串函数操作 <?php /** *@blog <www.phpddt.com> */ function cre ...

  2. Java中的类加载器----ClassLoader

    1.简单的讲类加载器就是加载类. 在一个类要被执行时,首先会被从硬盘中加载到内存中,这个任务就是由类加载器来完成,如果加载不成功时,类是无法被执行的.类加载器执行的都是字节码二进制文件.   帮助文档 ...

  3. 【转】Doscommand-操作Cmd的第三方控件

    核心用法: Doscommand1.CommandLine := 'cmd /c' +[命令];Doscommand1.OutputLines :=Memo1.Lines;Doscommand1.Ex ...

  4. 第十六章 调试及安全性(In .net4.5) 之 调试程序

    1. 概述 本章内容包括 如何选择合适的构建类型.创建和管理编译指令.管理程序数据文件(pdb)和指令. 2. 主要内容 2.1 构建类型 .net中默认的两种生成模式是 发布(Release)模式 ...

  5. 第二章 管理程序流(In .net4.5) 之 管理多线程

    1. 概述 本章包括同步资源以及取消长时间任务相关的内容. 2. 主要内容 2.1 同步资源 ① lock关键字实现.会阻塞程序,有可能会导致死锁. ② volatile关键字可以禁用编译优化,用于避 ...

  6. [terry笔记]Oracle会话追踪(二):TKPROF

    接上一笔记[terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046 http://www.cnblogs.com/kkterry/p/3279282.html ...

  7. 微软TTS尝试系列之开篇杂谈(仅思路)

    第一次写博客,不知道如何下手,思路也乱,就先聊聊怎么进的园子吧,但愿不会浪费大家太多的宝贵时间>_<. 与博客园结缘应该是大三刚开始的时候.当时学校教务处想开发一个教务安排系统,为了省钱就 ...

  8. MIFARE系列4《组成图》

    MIFARE集成电路芯片内含EEPROM.RF接口和数字控制单元. 1. RF射频接口 在RF射频接口电路中,主要包括有波形转换模块.它可将卡片读写器上的13.56MHZ的无线电调制频率接收,一方面送 ...

  9. 九度oj 1407 快速找出最小数

    原题链接:http://ac.jobdu.com/problem.php?pid=1407 线段树,区间更新,查询区间最小值. 注意区间更新,查询的时候,区间$\begin{align*}[L,R] ...

  10. OpenStack:安装Horizon

    1. 安装:# apt-get install memcached libapache2-mod-wsgi openstack-dashboard!Note for Ubuntu users# apt ...