Extjs:面板内的工具栏未在浏览器调整大小时调整大小

Posted

技术标签:

【中文标题】Extjs:面板内的工具栏未在浏览器调整大小时调整大小【英文标题】:Extjs : Toolbar inside a panel not resizing on Browser resize 【发布时间】:2014-01-15 12:06:46 【问题描述】:

我在面板中有一个工具栏和一个网格。在调整大小时,网格看起来不错。但是,工具栏保持其原始尺寸并且不会调整大小,从而导致一些按钮隐藏。 我该如何纠正这个问题?


                xtype: 'panel',
                region: 'center',
                layout: 'border',
                tbar:[
                    

                        xtype: 'buttongroup',
                        region: 'center', 
                        items:  getToolBarButtons()      // method to add buttons to toolbar dynamically
                    
                ],
                items: [
                    
                        xtype: 'tabpanel',
                        activeTab: 0,
                        layout: 'fit',
                        region: 'center',
                        disabled: 'true',
                        items:[
                            
                                // grid 1
                                height : '80%',
                                width : '100%'
                            ,
                            
                                // grid 2
                                height : '80%',
                                width : '100%'
                            
                        ]
                    
                ]
            

编辑

我将 tbar 替换为 dockedItems: [ xtype:' toolbar' ...] 。工具栏根本没有被渲染

【问题讨论】:

【参考方案1】:

Ext.toolbar.Toolbar 可以自动将溢出的工具栏按钮转换为带有菜单项的菜单。要允许这种自动转换,您需要使用 config enableOverflow: true 配置您的 toolbar 组件

所以不要使用tbar 配置:

dockedItems: [
   xtype: 'toolbar',
   dock: 'top',
   enableOverflow: true,
   items: [
      
          xtype: 'buttongroup',                 
          items:  getToolBarButtons()
      
   ]
]

还可以考虑将按钮划分为更多按钮组。如果工具栏有更多的按钮组,ExtJS 工具栏可以更好地处理溢出。

摆弄现场示例:http://sencha.com/#fiddle/2nd

【讨论】:

我为 tbar 尝试了 enableOverflow: true。我没有看到溢出菜单。这种行为是否与写作 dockedItems 而不是 tbar 有关? 是的。使用tbar: [],您只能定义工具栏中的项目,而不是工具栏配置。所以你应该使用dockedItems 的完整定义,正如我在答案中显示的那样(你可以在文档中看到tbar 只是dockedItems: [ xtype: 'toolbar', dock: 'top', ... 的简写) 参考我之前的 edit ,我将 tbar 替换为 dockedItems: [ xtype:' toolbar' ...] 。工具栏根本没有被渲染 我设置了现场示例:fiddle.sencha.com/#fiddle/2nd 布局与您在问题中的相同。工具栏在dockedItems 配置中定义,您可以看到它已呈现并且溢出管理正在工作。 现在工作正常。非常感谢!

以上是关于Extjs:面板内的工具栏未在浏览器调整大小时调整大小的主要内容,如果未能解决你的问题,请参考以下文章

使行扩展元素,即 extjs 网格和图表在窗口调整大小时调整大小

UIScrollView 内的 UIView 未在 3,5 英寸屏幕 iOS 上调整大小

UIImageView 未调整为圆形,UILabel 未在 StackView 和自定义集合单元中调整大小

具有布局适合和网格的 Extjs 3.3.1 FieldSet 在窗口调整大小时不会调整网格大小

Extjs - 当Compositefield中的项目增长/调整大小时如何调整兄弟姐妹的位置

传单地图未在选项卡式面板内正确显示