`
Wu_Jiang
  • 浏览: 14205 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

ExtJS大小随浏览器窗口大小调整自适应

阅读更多
第一种情况:Panel里嵌套两个panel可以设置layout为vbox,然后在item配置里,可以用flex:来指定两个子panel的比例大小。
Ext.define('My.view.b.Main', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.bmain',
        //height:'100%',
        layout:{
                type:'vbox',
                align:'center',
        },
    initComponent: function(){
        this.items = [{
                        xtype: 'bform',
                        width:'100%',
                        flex:1
                },{
                        xtype: 'blist',
                        width:'100%',
                        flex:4
                }];
        this.callParent(arguments);
    }
});


第二种情况:Panel里嵌套两个panel,但是某一个panel需要固定高度。同样设置父Panel的layout为vbox,但是必须同时设定其height属性为‘100%’,在item配置里,设置第一个panel的height为固定值(比如说100),然后需要(在该view对应的controller里)添加afterrender事件,在该事件函数里动态指定另一个panel的大小。
主Panel定义:
Ext.define('My.view.b.Main', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.bmain',
        height:'100%',
        layout:{
                type:'vbox',
                align:'center',
        },
    initComponent: function(){
        this.items = [{
                        xtype: 'bform',
                        width:'100%',
                        height:125
                        //flex:1
                },{
                        xtype: 'blist',
                        width:'100%',
                        //flex:4
                }];
        this.callParent(arguments);
    }
});

对应的BController.js
 
          refs:[
                {
                        selector:'bmain',
                        ref:'bMain'
                },{
                        selector:'blist',
                        ref:'bList',
                }
        ],

        init:function(){
                this.control({
                        'blist':{
                                afterrender:this.setListHeight
                        },
                });
        },
        setListHeight: function(me, opts){
                me.setHeight(this.getBMain().getSize().height - 135);
        },

但是上述第二个方法只有在加载页面的时候进行自适应,加载完后如果再调整窗口大小List并不会随着窗口大小改变而自动调整。
解决方法:
在BController.js中为主Panel加一个resize事件函数,该函数在主Panel大小调整的时候触发,让该事件触发一个类似setListHeight()的函数即可使List大小随着浏览器窗口的大小调整而自动调整(自适应)
       resizeListHeight: function(me, width, height, oldwidth, oldheight ){
                this.getBList().setHeight(height-135);
        },

0
2
分享到:
评论

相关推荐

    解决extjs grid 不随窗口大小自适应的改变问题

    在使用ExtJS框架开发时,开发者常常会遇到一个问题,即在浏览器窗口大小改变后,ExtJS Grid组件无法自动调整大小以适应新的窗口尺寸。为了解决这个自适应问题,ExtJS提供了一个灵活的API来监听窗口大小的变化,并在...

    Extjs自动最大化panel

    在传统的EXTJS中,`viewport`是一个特殊的布局,用于将整个页面作为其渲染目标,使得应用可以充满浏览器窗口。然而,`viewport`有其局限性,它只能应用于整个body元素,不能针对特定的HTML元素进行最大化处理。 ...

    ExtJs_Viewport_Example

    在创建一个ExtJS应用时,通常会设置Viewport作为应用的顶级容器,这样可以确保应用在整个浏览器窗口中显示得恰到好处,无论窗口大小如何变化。 在给定的文件列表中,我们可以看到以下几个关键文件: 1. **index....

    extjs4.2 desktop mvc

    7. **Desktop环境**:EXTJS 4.2 Desktop MVC 提供了一个仿桌面的界面,包括任务栏、启动菜单、窗口最大化/最小化/关闭等功能,使得Web应用的用户体验更加接近于桌面应用。 8. **性能优化**:EXTJS 4.2在性能方面...

    ExtJS2.0实用简明教程(chm)文档

    同时,对于ExtJS 2.0版本的局限性,比如对现代浏览器支持的不足,也需要有所了解,以便在项目中做出适当选择。 总之,这个压缩包为学习和使用ExtJS 2.0提供了必要的资源,通过深入学习和实践,开发者可以熟练掌握这...

    Extjs4.0中文学习手册、入门详解

    - **Anchor 布局**:根据组件的宽度和高度属性自动调整大小,适合需要自适应大小的组件。 - **Absolute 布局**:基于绝对定位,允许直接设置组件的CSS坐标,用于需要精确控制组件位置的场景。 - **Column 布局**...

    基于EXTJS简明教程2.0的笔记

    9. **ViewPort** 用于渲染整个body,能根据浏览器窗口大小自适应调整。使用`border`布局时,组件的位置由`region`属性决定。 10. **Border布局实例** `border`布局允许将组件分配到north, south, west, east四个...

    Extjs4 桌面效果优化

    在ExtJS 4中,桌面效果(Desktop Theme)是一个模拟操作系统桌面的界面模式,允许用户在浏览器中以类似桌面的方式组织和访问应用程序。 标题“Extjs4 桌面效果优化”指的是开发者对官方提供的ExtJS 4桌面主题进行了...

    ExtJS-3.4.0系列目录

    Ext.MessageBox是简单的全局API,而Ext.window.MessageBox则是基于窗口的实现,可以自定义更多内容和行为,如添加按钮、调整大小等。 3. **Ext.toolbar.Toolbar和Ext.menu.Menu** - **工具栏(Toolbar)**:通常...

    用extjs写的登录界面

    这是用extjs3.2.0写的一个登录界面,而且是经过删减ext中无效文件的精简版,里面给...功能强大:包括账号密码的判断、浏览器缩放时候的窗口自适应、键盘enter键的监听、分别用相对定位和绝对定位对ext元素进行布局等。

    精通JS脚本之ExtJS框架.part2.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    使用Sencha ExtJS和Sencha Cmd开发RIA程序.pdf

    为了适应不同设备的屏幕尺寸,ExtJS支持创建自适应的应用程序,包括使组件自适应、普通类自适应以及响应式布局。 Sencha ExtJS中还包含了一些常用的组件,如Ext.grid.Panel(网格面板)用于创建交互式的表格数据...

    extjs 4.1.1a(最新版)

    10. 兼容性和性能:ExtJS 4.1.1a 在多个主流浏览器上表现稳定,包括IE、Firefox、Chrome和Safari等。同时,经过优化的性能使得大型应用也能流畅运行。 通过使用ExtJS 4.1.1a,开发者能够快速构建企业级的Web应用,...

    《Ext+JS》 样章

    它内置的布局管理器能够根据浏览器窗口大小自动调整组件的排列方式。 ### 5. 动态加载 EXTJS支持按需加载,可以只加载当前需要的组件和数据,减少页面初始化时的资源消耗,提升应用性能。此外,它的动态加载功能还...

    精通JS脚本之ExtJS框架.part1.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    ExtJS[Desktop]实现图标换行示例代码

    这样,当窗口或浏览器大小发生变化时,图标布局也能随之更新。最后,在组件渲染完成后,通过`afterRender`方法延迟调用`initShortcut`,确保在用户界面前完全准备好后再进行图标布局。 总结来说,这个示例代码提供...

    extjs控件列表

    - **描述**: 代表浏览器的可视区域,可自动调整大小以适应窗口尺寸变化。 - **用途**: 作为主布局容器,确保页面内容在不同屏幕尺寸上自适应。 **Ext.BoxComponent** - **描述**: 盒子组件,类似于HTML中的`<div>`...

    jBPMWebDesigner工作流程设计器使用笔记

    此外,界面可以根据窗口大小自适应,确保最大的可视编辑空间,并且支持窗口的最大化、最小化和还原操作。 设计器支持多种类型的节点,包括开始、结束、分支、合并、决策、任务和邮件节点,这些节点可以自由调整大小...

    Ext Js权威指南(.zip.001

    8.3.5 实现调整大小功能:ext.resizer.resizer与ext.resizer.resizetracker / 420 8.3.6 为组件提供拖动功能:ext.util.componentdragger / 421 8.3.7 为组件实现动画功能:ext.util.animate / 422 8.3.8 其他的...

    TWaver_Web_4.0中文开发手册

    - **常见问题**:解答了一些常见的技术疑问,包括 HTML 支持与文本换行、拓扑图如何自适应父窗口大小等问题。 综上所述,TWaver Web 4.0 开发手册是一份非常全面的技术文档,它不仅涵盖了 TWaver Web 的基本概念和...

Global site tag (gtag.js) - Google Analytics