【问题标题】:GWT center DialogBox on zoom缩放时 GWT 中心对话框
【发布时间】:2012-10-02 06:48:09
【问题描述】:

我正在使用GWT 2.4 开发GWT mobile 应用程序。我希望我的DialogBox 在缩放或普通视图中始终位于用户viewport 的中心。在普通视图中,center() 可以处理它,但是当页面缩放时,DialogBox 会弹出整个浏览器窗口的中心,其中包括页面的滚动部分而不是用户视口的中心。这个怎么做?请帮忙。提前致谢。

【问题讨论】:

    标签: java gwt zooming dialog


    【解决方案1】:

    您需要将处理程序附加到捕获缩放事件的窗口。在这个处理程序中,您调用

    myDialogBox.setPopupPosition((Window.getClientWidth() - myDialogBox.getOffsetWidth())/2, (Window.getClientHeight() - myDialogBox.getOffsetHeight())/2);
    }
    

    如果您想区别对待,您可能需要添加检查对话框大于浏览器窗口的情况。

    【讨论】:

      【解决方案2】:

      我必须在我的窗口及其构造函数上添加implements ResizeHandler,我添加了ResizeEvent handler > Window.addResizeHandler(this);。由于我正在实现ResizeHandler 接口,我需要覆盖以下内容:

      @Override
      public void onResize(ResizeEvent event) {
          if (isShowing() ) { //check if popup is showing
              int left = (Window.getClientWidth() * 0.5 - (widthOfMyWindow * 0.5) );
              int top = (Window.getClientHeight() * 0.5  - (heightOfMyWindow * 0.5) );
      
              setPopupPosition( left < 10 ? 10 : left, top < 0 ? 0 : top );
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-08
        • 2018-01-18
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        • 1970-01-01
        相关资源
        最近更新 更多