2015-12-03 3 views
2

У меня здесь проблема. Здесь я остановлюсь на моем телефоне Android, когда он очень хорошо работает на эмуляторе, он выполняется щелчком по команде панели инструментов.Переход на Android-устройство

getContentPane(). Replace (getContentPane(). GetComponentAt (0), createAbout(), CommonTransitions.createCover (CommonTransitions.SLIDE_HORIZONTAL, false, 100));

Я думаю, что это из-за перехода. Любая помощь?

+0

CommonTransitions в основном используется для создания эффекта анимации из одной формы в другую. Что ты пытаешься сделать? Анимация контейнера .replace()? – Diamond

+0

Я воспользовался частью этого кода, чтобы получить этот эффект https://github.com/codenameone/RestaurantDemo/blob/master/src/com/mycompany/myapp/MainUI.java – valbrux

+0

Я установил переход на CommonTransitions.createEmpty() и теперь он больше не замораживает мой пользовательский интерфейс, мне просто нужно щелкнуть по пользовательскому интерфейсу, чтобы обновить контейнер, если я не нажму на экран, он не обновится. Я хотел бы обновить его, не нажимая на пользовательский интерфейс. Это происходит просто на Android-телефоне, на симуляторе все в порядке. – valbrux

ответ

1

Что вы могли бы сделать, если вы просто хотите анимировать замену:

getContentPane().replace(getContentPane().getComponentAt(0), createAbout(), null); 

getContentPane().animateLayoutAndWait(200); 
+0

Но я не хочу анимировать замену, я просто не хочу замораживать свой телефон, когда получаю getContentPane(). Replace(). Я просто не хочу нажимать TWICE в пользовательском интерфейсе при запуске нового контейнера. – valbrux

+1

Я думаю, что я просто решил проблему удаления градиентов, которые, как я понял, плохо просматриваются на моем мобильном телефоне: P – valbrux

0

В текущей реализации, если вы работаете две анимации сразу (замена, расположение и т.д.), вы можете создать недопустимое состояние, может вызвать исключение/замораживание.

Если есть шанс, что вам нужно установить флаг перед запуском анимации и отпустите ее, когда его сделали например .:

if(!globalLockFlag) { 
    globalLockFlag = true; 
    // change stuff and use animateLayoutAndWait or replaceAndWait 
    globalLockFlag = false; 
} else { 
    // use timer or callSerially to postpone or skip animation entirely 
} 
Смежные вопросы