Android 代码名One-ReplaceAndWait()不';不行?

Android 代码名One-ReplaceAndWait()不';不行?,android,ios,codenameone,Android,Ios,Codenameone,这项质询与我先前的质询有关 我花了很多时间尝试在表单之间转换,但在实际设备上没有成功(在模拟器上没有问题)。最后,我选择更改逻辑,将三个表单之间的转换替换为替换同一表单中的三个容器。其思想是ReplaceAndWait()方法确保它等待替换的结束。但是同样在本例中,代码在Codename One模拟器(使用Android和iOS皮肤)中运行良好,在真实设备上不起作用。更清楚的是:在真实设备上没有“淡入淡出效果”(在安卓4.x和5.x上测试)。以下代码中有什么错误 Containe

这项质询与我先前的质询有关

我花了很多时间尝试在表单之间转换,但在实际设备上没有成功(在模拟器上没有问题)。最后,我选择更改逻辑,将三个表单之间的转换替换为替换同一表单中的三个容器。其思想是ReplaceAndWait()方法确保它等待替换的结束。但是同样在本例中,代码在Codename One模拟器(使用Android和iOS皮肤)中运行良好,在真实设备上不起作用。更清楚的是:在真实设备上没有“淡入淡出效果”(在安卓4.x和5.x上测试)。以下代码中有什么错误

        Container container1 = new Container(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
        container1.add(BorderLayout.CENTER, FlowLayout.encloseCenterMiddle(myIcon));

        Container container2 = new Container(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
        container2.add(BorderLayout.CENTER, FlowLayout.encloseCenterMiddle(new Label(" ")));

        Container container3 = new Container(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
        container3.add(BorderLayout.CENTER, backgroundContainer);

        startForm.add(BorderLayout.CENTER, container1);
        startForm.show();

        container1.getParent().replaceAndWait(container1, container2, CommonTransitions.createFade(2000));
        container2.getParent().replaceAndWait(container2, container3, CommonTransitions.createFade(1000));

这在设备上对我有效:

    Form f = new Form("Fade", new BorderLayout());

    Container container1 = BorderLayout.center(FlowLayout.encloseCenterMiddle(new Label(duke)));

    Container container2 = BorderLayout.center(FlowLayout.encloseCenterMiddle(new Label(" ")));

    Label redDuke = new Label(duke);
    redDuke.getUnselectedStyle().setBgColor(0xff0000);
    redDuke.getUnselectedStyle().setBgTransparency(255);

    Container container3 = BorderLayout.center(FlowLayout.encloseCenterMiddle(redDuke));

    f.add(CENTER, container1);
    f.show();

    callSerially(() -> {
        container1.getParent().replaceAndWait(container1, container2, CommonTransitions.createFade(2000));
        container2.getParent().replaceAndWait(container2, container3, CommonTransitions.createFade(1000));
    });

但由于fade在设备上的工作方式不同,它在模拟器上的工作方式并不完全相同。为了提高效率,淡入淡出在设备和模拟器上的实现略有不同,某些行为可能会呈现不同的效果,尤其是在半透明/透明组件上

谢谢。您的代码在我的设备上不起作用:从container1到container2的第一个淡入淡出根本不运行(第一个容器显示两秒钟而不淡入淡出),第二个淡入淡出工作(但以一种奇怪的方式,因为红色背景立即出现,然后duke图标在其上淡入淡出)。在安卓4.1.2上测试,差不多就是这样。当半透明元素就位时,淡入淡出中的透明度行为是有问题的。你是如何淡入透明的?尝试在具有完全不透明度的相同大小的元素之间执行效果