2016-11-01 1 views
0

J'ai un ensemble de contrôles qui utilisent PopupView. Depuis la mise à jour de Charm 4.0.0, ils montrent un comportement étrange.Charme 4.0.0 PopupView apparaît une seule fois

Lorsque j'ai sélectionné un Node contenu dans le PopupView, le PopupView était fermé. Maintenant, le PopupView se ferme mais se manifeste immédiatement. De plus, dès que je clique à l'extérieur du PopupView, il se ferme, mais je ne suis pas en mesure de le montrer à nouveau.

Je l'ai testé avec l'exemple de la Gluon javadoc et a connu le même comportement en ce qui concerne la deuxième question:

public class MyApp extends MobileApplication{ 
    private Button button; 
    private PopupView popupView; 

    @Override 
    public void init() { 
     addViewFactory(HOME_VIEW,() -> { 
     button = new Button("Click"); 
     button.setOnAction(event -> popupView.show()); 

     popupView = new PopupView(button); 

     VBox vBox = new VBox(); 
     vBox.getChildren().addAll(new Label("Choice 1"), new Label("Choice 2"), new Label("Choice 3")); 
     vBox.setSpacing(5); 

     popupView.setContent(vBox); 

     return new View(button) { 
     @Override 
     protected void updateAppBar(AppBar appBar) { 
      appBar.setTitleText("PopupView"); 
     } 
     }; 
    }); 
    } 
} 

Répondre

0

Merci pour les rapports. J'ai classé un problème afin qu'il soit réparé dès que possible.

En attendant, une solution de contournement pour le PopupView peut être ceci:

PopupView popupView = new PopupView(button) { 

    private final GlassPane glassPane = MobileApplication.getInstance().getGlassPane(); 

     { 
      this.setOnMouseReleased(e -> this.hide()); 
     } 

    @Override public void show() { 
     // before showing add the glassPane (issue #2): 
     this.mobileLayoutPaneProperty().set(glassPane); 
     super.show(); 
    } 

    @Override public void hide() { 
     // when hiding don't show again (issue #1): 
     setShowing(false); 
     super.hide(); 
    } 
}; 
+0

'AutoCompleteTextField' montre le même comportement, car il utilise un' PopupView' pour son autocomplete pop-up. Parce que le PopupView n'est pas exposé cette solution de contournement ne peut pas être appliquée. Comment cela pourrait-il être résolu? – jns