【问题标题】:Can we remove a Block (West, East, North or South block) out of a DockLayoutPanel?我们可以从 DockLayoutPanel 中删除一个块(西、东、北或南块)吗?
【发布时间】:2013-10-06 12:51:15
【问题描述】:

我喜欢 DockLayoutPanel,因为它非常坚固。但是,有一个大问题。

那是如何从 DockLayoutPanel 中移除一个块(西、东、北或南块)?

比方说,我得到了这个代码

   <g:DockLayoutPanel ui:field="centralDockLayoutPanel">
         <g:center>
               <g:LayoutPanel ui:field="mainPanel"/>  
         </g:center>
         <g:east size="200">
                <g:HTMLPanel ui:field="happyHTMLPanel"  width="100%" height="100%"> 
                 Some more widgets here
               </g:HTMLPanel> 
         </g:east>
   </g:DockLayoutPanel>  

我想从 centralDockLayoutPanel 中移除 East 块。所以我尝试了

getView().getCentralDockLayoutPanel().remove(getView().getHappyHTMLPanel());

但这不起作用

getView().getHappyHTMLPanel().setVisible(false);

也不行

我们可以从 DockLayoutPanel 中删除一个块(西、东、北或南块)吗?

【问题讨论】:

  • 所以您不仅想删除面板本身,还想“重新布局”其他小部件,以便它们在面板之后占据备用位置?

标签: gwt uibinder gwtp docklayoutpanel


【解决方案1】:

你可以试试:

getView().getCentralDockLayoutPanel().remove(getView().getHappyHTMLPanel());
getView().getCentralDockLayoutPanel().forceLayout();

或者你可以隐藏你的面板:

getView().getCentralDockLayoutPanel().setWidgetHidden(getView().getHappyHTMLPanel(), true);
getView().getCentralDockLayoutPanel().forceLayout();

【讨论】:

  • 非常感谢你,1个小任务,怎么加回来?
  • 我试过 getView().getCentralDockLayoutPanel().addEast(getView().getHappyUserHTMLPanel(), 300);但出现错误“在 CENTER 小部件之后不能添加小部件
  • 完美,谢谢你。
  • 在这种情况下,您最好隐藏您的小部件,而不是删除它。我已经更新了答案,您可以在其中看到如何做到这一点。
【解决方案2】:

我总是将它们的大小设置在零和非零之间,分别代表隐藏和显示。这样,您甚至可以在更改孩子的大小时添加一些动画。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 2021-02-12
    • 2015-04-19
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    相关资源
    最近更新 更多