我在这里遇到了一个问题。这里冻结我的Android手机,虽然它在模拟器上工作得非常好,只需点击工具栏命令即可执行。
getContentPane()。replace(getContentPane()。getComponentAt(0),createAbout(),CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL,false,100));
我认为这是因为过渡。 有什么帮助吗?
答案 0 :(得分:1)
如果您只是想要替换动画,您可以做的是:
getContentPane().replace(getContentPane().getComponentAt(0), createAbout(), null);
getContentPane().animateLayoutAndWait(200);
答案 1 :(得分: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
}