2017-03-25 4 views
2

Seit dem Hinzufügen einer globalen Symbolleiste zu den Formularen gibt es beim Ändern von Formularen einen merkwürdigen Animationsfehler (?). Beim Drücken einer Schaltfläche in FormA, die FormB.show() aufruft, hat der Titel eine Animation, die das neue Formular im Werkzeugleistenbereich von rechts nach links stottert. this Nach Googeln fand ich:Codename One: Seltsame Symbolleistenanimation bei Formularänderung

enter image description here

Das ist so ziemlich das Problem, das ich in dem Symbolleiste Gesicht, einziger Unterschied ist das Symbolleiste Logo I zum Zentrum wird zu seinem Platz von rechts nach links Stottern. Nachdem die Animation fertig ist, sieht das Formular genau so aus, wie es sein sollte.

Im Haupt ich dies tun:

 Toolbar.setGlobalToolbar(true); 

in jeder Form ich so etwas wie dies im Konstruktor:

menuForm = new Form(" ", new BorderLayout()); 
    logo = res_theme.getImage("Logo_Gema_vertikal.png"); 
    menuForm.getToolbar().getTitleComponent().setUIID("toolbar_image"); 
    ((Label)menuForm.getToolbar().getTitleComponent()).setIcon(logo); 
    menuForm.getToolbar().addCommandToSideMenu(homeCommand); 
    menuForm.getToolbar().getMenuBar().addCommand(homeCommand); 

Wenn ich das Logo auf der Symbolleiste Hinzufügen auslassen, nur die Befehlssymbole fliegen von rechts nach links. Was verursacht das? Benutze ich die Symbolleiste falsch?

+0

Können Sie ein Video zur Veranschaulichung des Animationsproblems posten? – Diamond

+0

Hinzugefügt. Bitte beachten Sie die Änderung. –

+0

Es ist nur ein Screenshot, wenn es nicht passt, kann ich auch ein Video hinzufügen. –

Antwort

2

Von Ihrer Frage, es ist wegen der Verwendung der Standard-Animation, die createSlideFadeTitle ist. Sie können dieses Problem lösen, indem Sie die Animation des aktuellen Formulars zu ändern und die Zielform entweder createCover oder createSlide:

In der aktuellen Form:

currentForm.setTransitionOutAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, 300)); 
nextForm.show(); 

Und in der Zielform:

nextForm.setTransitionOutAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, 300)); 
currentForm.showBack(); 
+0

Nochmals vielen Dank, du hast mir schon ein paar Mal geholfen :) –