0

我有一个弹出面板

 private PopupPanel simplePopup;

弹出窗口在应用程序中打开。当用户在其外部单击时,弹出窗口将关闭。这是默认行为。如果满足条件,我想覆盖该行为并且不要关闭弹出窗口。我有这样的想法:

  simplePopup.addCloseHandler(new CloseHandler<PopupPanel>() {

        @Override
        public void onClose(CloseEvent<PopupPanel> arg0) {
            if (conditionIsMet) {
              // do something here to avoid closing the popup
           }
        }
    });

但我不知道如何防止弹出窗口关闭。我读过一些关于onPreviewNativeEvent的内容,但我不知道如何使用它。

4

1 回答 1

2

您需要禁用 autoHide 标志。默认隐藏行为是由于此标志。您可以使用以下代码段禁用它。

simplePopup.setAutoHideEnabled( false );

您也可以通过构造函数禁用它。

您可以通过将 hide 方法重写为基于某些条件来控制隐藏

    simplepopup = new PopupPanel( false)
    {
        @Override
        public void hide( boolean autoClosed )
        {
            if( condition met )
            {
                super.hide();
            } 
        }
    };
于 2013-02-21T03:42:15.200 回答