[Layout] window中动态调整Panel样式错位的问题

[ 196 查看 / 5 回复 ]

window中动态调整Panel样式错位的问题
我做一个类似于QQ的界面。希望点击“聊天记录”后window宽度变宽,原本收缩的panel将会展开,并保证原来的聊天框口宽度不变,效果如图1.可是我当前实现的效果则是window宽度变宽,但是panel遮住原来的聊天框口。见图2. 请高手帮着看看,代码如下:
  1. Ext.onReady(function() {

  2. //追加按钮
  3. var addTool = function (){
  4. var f=0;
  5. Ext.getCmp('editMsg').getToolbar().add('-', {
  6. width : 20,
  7. text: '聊天记录',
  8. cls: 'x-btn-icon x-edit-mybuttons', //设置自定义样式
  9. handler: function() {
  10. //控制右侧panel
  11. if (f=== 1) {
  12. Ext.getCmp('mynav').collapse();
  13. f= 0;} else {
  14. Ext.getCmp('mynav').expand();
  15. Ext.get('winQQ').setWidth(800);
  16. f= 1; }
  17. }
  18. });
  19. }


  20. //文字显示区域------------
  21. var showMsg = new Ext.Panel({
  22. border : false, //边框线
  23. height : 200,
  24. xtype : 'panel',
  25. id : 'showMsg',
  26. layout : 'fit',
  27. bodyStyle : 'padding:10px;',
  28. autoScroll:true
  29. });
  30. //文字显示区域------------

  31. //编辑器------------
  32. var htmEditor = new Ext.form.HtmlEditor({
  33. xtype : 'htmleditor',
  34. id : 'editMsg',
  35. name : 'body',
  36. height:120,
  37. //width:100%,
  38. allowBlank : false,
  39. anchor : '0-50',
  40. enableSourceEdit:false,
  41. enableLists:false,
  42. enableLinks :false,
  43. enableAlignments :false,
  44. border : false
  45. });
  46. //编辑器------------

  47. //聊天纪录区域------------
  48. var eastPanel = new Ext.Panel({
  49. region:"east",
  50. title:"east",
  51. id:'mynav',
  52. width:350,
  53. split:true,
  54. collapsible:true,
  55. titleCollapse:true,
  56. collapsible : true,
  57. closable : true,
  58. collapsed : true //默认收缩状态
  59. });
  60. //聊天纪录区域------------

  61. var win = new Ext.Window({
  62. title : 'winQQ',
  63. id : 'winQQ',
  64. name : 'winQQ',
  65. width : 480,
  66. height : 400,
  67. collapsible : true,
  68. labelAlign : 'left',
  69. labelWidth : 60,
  70. hideLabel : false,
  71. maximizable : true,
  72. border : false,
  73. layout : 'border',
  74. frame : true,
  75. items:[{
  76. region:"center",
  77. border : false, //边框线
  78. items:[showMsg,{
  79. labelAlign: 'top',
  80. minHeight : 150,
  81. frame:true,
  82. split : true,
  83. xtype : 'form',
  84. border : false,
  85. hideLabels : true,
  86. bodyStyle : 'background:transparent;',
  87. items : [htmEditor],
  88. buttons : [{
  89. text : '发送',
  90. type:'submit'
  91. }, {
  92. text : '关闭'
  93. }]
  94. }]
  95. },eastPanel]
  96. });

  97. win.show();
  98. addTool(); //追加按钮
  99. });
复制代码
附件:您所在的用户组无法下载或查看附件
TOP
window中动态调整Panel样式错位的问题

展开后用window的doLayout方法试试。
TOP
window中动态调整Panel样式错位的问题

2楼的说法 我试了一下  好像不行啊
TOP
window中动态调整Panel样式错位的问题

代码应该改成这样:
  1.                     Ext.getCmp('winQQ').setWidth(800);
                        Ext.getCmp('mynav').expand();
                        f = 1;

                        Ext.getCmp('winQQ').doLayout();
复制代码
TOP
window中动态调整Panel样式错位的问题

  1. Ext.get('winQQ').setWidth(800);
  2.                                                         Ext.getCmp('mynav').expand();
  3.                                                         f= 1;
  4.                                                         win.doLayout();
复制代码
是改为这样了,没有作用啊,版主你试过了嘛,不行吧?
TOP
window中动态调整Panel样式错位的问题

看来楼主根本没有仔细看我贴出来的代码:
你的代码:Ext.get('winQQ').setWidth(800);
我的代码:Ext.getCmp('winQQ').setWidth(800);

在加上doLayout方法就行了。
TOP