`
caibinghong
  • 浏览: 144301 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

小谈Ext架构-最简单的layout:AnchorLayout

 
阅读更多

 

最简单的layout:AnchorLayout

 

AnchorLayout是最简单的布局管理其,它只是将元素按照配置的属性在元素容器中进行定位。
   
让我们看一下它的render方法以理解如果进行布局:

    onLayout : function(ct, target){
    Ext.layout.AnchorLayout.superclass.onLayout.call(this, ct, target);
    //
获取元素的尺寸
    var size = this.getAnchorViewSize(ct, target);
    var w = size.width, h = size.height;
    if(w < 20 || h < 20){
        return;
    }
    //
获取容器的尺寸
    var aw, ah;
    if(ct.anchorSize){
        if(typeof ct.anchorSize == 'number'){
          aw = ct.anchorSize;
        }else{
          aw = ct.anchorSize.width;
          ah = ct.anchorSize.height;
        }
    }else{
    //
根据配置获取容器尺寸
        aw = ct.initialConfig.width;
        ah = ct.initialConfig.height;
    }
    //
遍历元素,并调用元素的setSize方法,继承自boxComponentsetSize方法则触发resize事件从而触发layout方法。
    var cs = ct.items.items, len = cs.length, i, c, a, cw, ch;
    for(i = 0; i < len; i++){
        c = cs;
        if(c.anchor){
          a = c.anchorSpec;
          if(!a){ // cache all anchor values
            var vs = c.anchor.split(' ');
            c.anchorSpec = a = {
                right: this.parseAnchor(vs[0], c.initialConfig.width, aw),
                bottom: this.parseAnchor(vs[1], c.initialConfig.height, ah)
            };
          }
          cw = a.right ? this.adjustWidthAnchor(a.right(w), c) : undefined;
          ch = a.bottom ? this.adjustHeightAnchor(a.bottom(h), c) : undefined;
          if(cw || ch){
            c.setSize(cw || undefined, ch || undefined);
          }
        }
    }
  },

分享到:
评论

相关推荐

    php-ext-xlswriter-ide-helper:PHP 扩展 Xlswriter IDE 助手

    安装扩大pecl install xlswriterIDE 助手composer require viest/php-ext-xlswriter-ide-helper:dev-master文档

    ext-2.0 ext-2.0 ext-2.0 ext-2.0 ext-2.0

    ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0

    Ext入门-详细教程

    Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-...

    m3u8转mp4工具包

    m3u8转mp4工具包 下载后执行命令: ...2、main方法接收三个参数...#EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-ALLOW-CACHE:YES #EXT-X-TARGETDURATION:11 #EXTINF:10.043378, 0000.ts ...... 4、懂得都懂,亲测有效

    commonmark-ext-yaml-front-matter-0.12.1.jar

    java运行依赖jar包

    flarum-ext-chinese-search:flarum-ext-chinese-search

    flarum-ext-chinese-search Flarum 论坛中文搜索插件 - 基于 xunsearch 搜索引擎开发 如何安装 安装 xunsearch 服务端 参照 注意安装 xunsearch 需要以下依赖库 gawk make gcc g++ zlib1g-dev 安装插件 composer ...

    jcifs-ext-0.9.4.jar/jcifs-1.3.3.jar

    jcifs-ext-0.9.4.jar/jcifs-1.3.3.jar 单点登陆 解决maven仓库有jar包但是maven程序无法下载仓库jar包

    ext3.0-2009-9-14 17:00:20

    ext3.0版本 刚刚开始学习,先下载下来再说

    Bandwidth Splitter

    bandwidth splitter 破解版

    ext4-exactor.zip

    android经常要用到解析img,将img解析成一系列文件分析问题

    spketdwcs-ext-2.1.mxp

    spketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-ext-2.1.mxpspketdwcs-...

    GetM3U8.py

    此代码仅供学习交流用,是在前人的代码上改的.算是学python的一些成果 可以下载M3U8文件,只需要贴M3U8的根文件就可以了,...#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=600000,RESOLUTION=720x406 600kb/hls/index.m3u8

    openwrt-orangepi-zero-ext4-sdcard.img.gz

    OpenWrt-Lede_18.06.02 OrangePi Zero wifi-xr819 and soc-audio enabled! OrangePi Zero 安装OpenWrt 能够实现wifi和播放音乐。 详细安装和操作步骤: First Run boot-config: ...Click Create a backup of uboot (dtb...

    webext-storage-cache:WebExtensions模块

    webext-storage-cache WebExtensions模块:具有到期时间的类似地图的承诺缓存存储。 Chrome和Firefox。 该模块适用于内容脚本,背景页面和选项页面。 安装 您可以下载并将其包含在manifest.json 。 或使用npm : ...

    vitesse-webext::high_voltage: WebExtension Vite 入门模板

    WebExtension Vite Starter 驱动的 WebExtension( 、 等)入门模板。 特征 :high_voltage: 即时 HMR - 在开发者上使用Vite (不再刷新!) :kiwi_fruit: Vue 3 - Composition API... webext-bridge - 上下文之间的

    ext2-linux-file-system:EXT2文件系统仿真器

    ext2-linux-file-system:EXT2文件系统仿真器

    jcifs-ext-0.9.4.jar

    解压即可得到jcifs-ext-0.9.4.jar, java环境资源,jdk1.6及以上

    bugsnag-ruby-ext:Bugsnag Ruby客户端的扩展

    bugsnag-ext Bugsnag的有用扩展。 安装 将此行添加到应用程序的Gemfile中: gem 'bugsnag-ext' 然后执行: $ bundle 或将其自己安装为: $ gem install bugsnag-ext 用法 Bugsnag::Ext::ResqueRetry class ...

    ExtCore-Sample-Simplest:ExtCore framework 5.0.0示例最简单的Web应用程序

    ExtCore Framework 6.0.0示例最简单的Web应用程序介绍是一个免费的开源跨平台框架,用于基于ASP.NET Core创建模块化和可扩展的Web应用程序。 它使用最佳和最现代的工具和语言(Visual Studio 2019,C#等)构建。 ...

    web-ext-webpack-plugin:用于web-ext的webpack插件

    $ npm install --save-dev web-ext-plugin # Or for yarn $ yarn install -D web-ext-plugin webpack.config.js const WebExtPlugin = require ( 'web-ext-plugin' ) ; module . exports = { plugins : [ new ...

Global site tag (gtag.js) - Google Analytics