[Extjs modern]视图绘制顺序简单分析
来源:互联网 发布:手机漏洞检测软件 编辑:程序博客网 时间:2024/06/09 17:16
源码
下面贴出部分工作代码供分析,可能会去除一些不必要的东西,仅供参考
Ext.define('Admin.view.base.KaoQinManage',{ extend:'Ext.Container', xtype: 'kaoqinmanage', requires:[ 'Ext.chart.series.Pie', 'Ext.tip.ToolTip', 'Ext.chart.interactions.ItemHighlight' ], fullscreen: true, layout: { type: 'vbox'//, //pack: 'center' }, items:[ { xtype: 'button', text: '', style: { background: '#8470FF', color:'white', fontSize:'20px' }, handler:function(){ console.log(this.up('navigationview')); var navigationview = this.up('navigationview'); var store = Ext.create('Ext.data.Store', { fields: [], data: [] }); var gridpanel = Ext.create('Ext.Container', { fullscreen:true, items:[ { xtype: 'grid', title: '', store: store, columns: [], height: Ext.Viewport.getWindowHeight()-100, layout: 'fit', listeners:{ itemdoubletap:function( self, index, target, record, e, eOpts ){ console.log(record); } } }, { xtype: 'button', text: '返回', style: { background: '#A8A8A8', color:'#F5F5F5', fontSize:'20px' }, handler:function(){ var navigationview = this.up('navigationview'); navigationview.removeAll(); navigationview.add({ xtype:'kaoqinmanage' }); } } ] }); // gridpanel.show(); navigationview.removeAll(); navigationview.add(gridpanel); }, listeners:{ painted:function(self,eOpts){ console.log("button painted..."); } } }, { xtype: 'panel', html: '', style:{ textAlign: 'center', fontSize: '18px' }, listeners:{ painted:function(self,eOpts){ console.log("统计日期 panel painted..."); } } }, { xtype:'panel', height:400, items:{ xtype: 'polar', width: '100%', height: '100%', insetPadding: 20, innerPadding: 15, legend: { position: 'bottom' }, colors:['#66CD00','#B3EE3A','#EE5C42'], //theme: 'green', interactions: ['rotate', 'itemhighlight'], store:{ fields: ['name', 'data'], data: [] }, series: { type: 'pie', highlight: true, angleField: 'data', label: { field: 'name', //display: 'rotate', calloutLine: { length: 20, width: 3 // specifying 'color' is also possible here } }, donut: 20/*, tooltip: { trackMouse: true, renderer: function (toolTip, record, ctx) { toolTip.setHtml(record.get('name') + ': ' + record.get('data') + ' views'); } }*/ } }, listeners:{ painted:function(self,eOpts){ console.log("饼状图 panel painted..."); } } } ], listeners:{ painted:function(self,eOpts){ console.log("Container painted..."); } }});
运行视图
控制台数据
结果分析
根据控制台输出的结果,结合上面的展示图可以看出:在一个container容器里有一些其他的组件时,首先绘制的是内部的组件,而组件的绘制顺序是按照items里添加顺序进行绘制的。在本例子当中是先绘制最上面的button,然后是下面的统计日期一行文字的panel,接着是下面的饼状图部分,最后才是最外层的容器container。
如果清楚组件的绘制顺序就可以在特殊的时间点做一些数据处理,则会达到事半功倍的效果!!!
欢迎指正,谢谢!
1 0
- [Extjs modern]视图绘制顺序简单分析
- Android视图绘制分析基础
- 创建视图并绘制简单图形
- 创建视图并绘制简单图形
- cxGrid源代码结构分析Ⅰ(视图绘制)
- [ExtJS 6.5 Modern] 适用于 Modern 的本地化/多语言包(Package)
- cxGrid源代码结构分析Ⅰ(视图绘制) 转
- Android视图View绘制流程及源码分析
- Tapestry 3.0 绘制页面 简单分析
- Android 过度绘制简单的分析
- ExtJs 绘制柱状图
- ExtJs 绘制拆线图
- 5.简单标签执行顺序分析
- [Extjs modern] 如何在gridpanel的列中添加按钮
- 绘制视图背景
- Android如何绘制视图
- android如何绘制视图
- android视图绘制处理
- Mobile开发之meta篇
- 根据行间距计算label的高度
- 官方的databinding的资料,顺便练练英语
- 数据挖掘十大经典算法
- RapidXml使用(备忘)
- [Extjs modern]视图绘制顺序简单分析
- 【原博客迁移】2016-05-22 小组交流会
- 自定义ViewGroup及其子类(Linearlayout,Relativelayout,FrameLayout。。。)时onDraw方法没被调用怎么解决
- bzoj 4325: NOIP2015 斗地主 (dfs+剪枝)
- go语言接收c语言消息中文乱码问题
- 内存管理那些问题
- mysql 搜寻附近N公里内数据的实例
- Java NIO: Non-blocking Server
- 使用Emacs ediff作为git diff工具