Codenameone 迁移冻结Android设备

Codenameone 迁移冻结Android设备,codenameone,Codenameone,我这里有一个问题。这冻结了我的Android手机,虽然它在模拟器上运行得很好,但它是通过单击工具栏命令来执行的 getContentPane().replace(getContentPane().getComponentAt(0),createAbout(),CommonTransitions.createCover(CommonTransitions.SLIDE_,false,100)) 我认为这是因为过渡。 有什么帮助吗?如果您只想为替换设置动画,您可以做的是: getContentPane

我这里有一个问题。这冻结了我的Android手机,虽然它在模拟器上运行得很好,但它是通过单击工具栏命令来执行的

getContentPane().replace(getContentPane().getComponentAt(0),createAbout(),CommonTransitions.createCover(CommonTransitions.SLIDE_,false,100))

我认为这是因为过渡。
有什么帮助吗?

如果您只想为替换设置动画,您可以做的是:

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

getContentPane().animateLayoutAndWait(200);

在当前实现中,如果同时运行两个动画(替换、布局等),可能会创建一个无效状态,从而触发异常/冻结

如果有可能,您需要在开始动画之前设置一个标志,并在动画完成后释放它,例如:

if(!globalLockFlag) {
    globalLockFlag = true;
    // change stuff and use animateLayoutAndWait or replaceAndWait
    globalLockFlag = false;
} else {
   // use timer or callSerially to postpone or skip animation entirely
}

CommonTransitions基本上用于创建从一种形式到另一种形式的动画效果。你想干什么?设置容器的动画。replace()?我按照这段代码的一部分来获得这种效果,我将转换设置为CommonTransitions.createEmpty(),现在它不再冻结我的UI,我只需单击UI来刷新容器,如果我不点击屏幕,它不会刷新。我希望在不点击UI的情况下刷新它。这只发生在Android手机上,在模拟器上一切正常。但我不想设置替换动画,我只是不想在执行getContentPane()时冻结我的手机。替换()。我只是不想在启动新容器时在UI上单击两次。我想我刚刚解决了删除渐变的问题,我知道我的手机无法很好地查看渐变:P