【翻译】Sencha Touch2.4 The Layout System 布局

【翻译】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

时间: 2024-11-03 05:02:41

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

sencha touch2.0和sencha touch 2.1的区别在哪

问题描述 sencha touch2.0和sencha touch 2.1的区别在哪 sencha touch 2.1能兼容sencha touch 2.0所有的方法吗

javascript-easyui layout的布局问题

问题描述 easyui layout的布局问题 <div title="South Title" style="height:100px;"></div> <div title="East" style="width:100px;"></div> <div title="West" style="width:100px;">&l

Android Layout各种布局

Android Layout各种布局 LinearLayout(线性布局) 提供了控件水平垂直排列的模型,同时可以通过设置子控件的weight布局参数控制各个控件在布局中的相对大小. 水平(vertical)垂直(horizontal) fill-parent:占满整个屏幕, wrap-content:刚好适合控件内容的大小 对齐方式gravity取值: top:不改变大小,位置置于容器的顶部 bottom:不改变大小,位置置于容器的底部 left:不改变大小,位置置于容器的左边 right:不

十四 Page Layout 网页布局

网页 使用CSS布局非常简单,如果你习惯使用tables布局,可能开始时有点困难,但其实很容易,事实上只是观念的不同. 你需要把网页的每个部分看成独立的块,你可以绝对或相对定位块. Positioning 定位 positon属性可以指定元素为absolute,relative,static或是fixed. static是元素默认属性,按HTML出现的先后顺序. relative比较像static,但元素可以使用top,right,bottom和left设定初始属性. absolute把元素从H

Sencha Touch2 时间轴ListPanel

直接贴代码 timeline.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="../pub/touch-2.3.1/resources/css/sencha-touch.css"> <script type

ExtJS 4 官方指南翻译:容器与布局(Layouts and Containers)

原文:http://docs.sencha.com/ext-js/4-0/#!/guide/layouts_and_containers 翻译:frank/sp42 转载请保留本页信息 布局系统是 Ext JS 的最强大的部分之一.它可以处理您的应用程序中的每个组件的大小和定位.本指南介绍了如何进行布局的基础知识. The layout system is one of the most powerful parts of Ext JS. It handles the sizing and po

《Ext JS 4 First Look》翻译之三:布局

第三章 布局      布局用于定义容器如何组织内部子元素和控制子元素的大小.在一个应用程序中,作为定义容器的组织形式,布局是一个十分重要的组件.是显示单个子元素?还 是垂直或水平显示多个子元素?这些均由布局来定义.并且布局将占用应用程序大部分的呈现时间.Extjs4中对布局进行了重大的修整.下面我们将学习并熟 悉Extjs中的布局. 本章目录如下: 3.1. Extjs 4 布局 3.2. Container布局 3.2.1. Auto布局 3.2.2. Anchor布局 3.2.3. Abs

android-把 button 放在框架布局 frame layout 左边的问题

问题描述 把 button 放在框架布局 frame layout 左边的问题 在一个垂直的线性布局中设置了两个textviews,还有一个button和一个frame layout框架布局. 我要把按钮放在框架布局的左边,并把按钮放在 relative layout布局中. 但是如何把框架布局 frame layout 放在右边呢? <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android 布局学习之——Layout(布局)详解一

layout(布局)定义了用户界面的可视化结构(visual structure),如Activity的UI,应用窗口的UI.       有两种方式声明layout:       1.在xml文件中声明UI组件.       2.在运行时,实例化布局元素.我们可以以编码的方式创建View或ViewGroup对象,操纵它们的属性.      下面用一个小例子来学习怎样以编码的方式添加layout:      1 import android.app.Activity; 2 import andr